http与https的区别?

1、HTTP 的最大弊端------不安全

HTTP 之所以被 HTTPS 取代,最大的原因就是不安全,因为http中所有的数据都是明文传输的,自然没有安全性可言,特别是一些敏感数据,比如用户密码和信用卡信息等,一旦被第三方获取,后果不堪设想。这里可能有人会说,我在前端页面对敏感数据进行加密不就行了,比如 MD5 加盐加密。这么想就太简单了。首先 MD5 并不是加密算法,其全称是 Message Digest Algorithm MD5,意为信息摘要算法,是一种不可逆的哈希算法,也就是说经过前端 MD5 处理过的数据在服务器端是无法复原的。这里以密码举例,前端把用户密码通过 MD5 进行处理,并把得到的哈希值发送给服务器,服务器由于无法复原密码,就会直接用这个哈希值处理用户请求。所以第三方在获取这个哈希值后,可以绕过前端登录页面直接访问服务器,造成安全问题。另外,MD5 算法本身的安全性也存在缺陷,这里就不展开谈了。
总之 MD5,SHA-1 之类的哈希算法并不能让 HTTP 变得更安全。要想让 HTTP 更安全,只能使用真正的加密算法,因为加密算法可以用密钥加密或还原数据,只要确保密钥不被第三方获取,那就能确保数据传输的安全了。而这正是 HTTPS 的解决方案

2、对称加密与非对称加密

  • 对称加密:服务器与客户端都使用同一种加密方式进行对双方数据的加解密工作
  • 非对称加密:服务器与客户端使用独立的加密方式对双方数据进行加解密工作

3、HTTPS 原理详解

HTTPS (Hypertext Transfer Protocol Secure) 是基于 HTTP 的扩展,用于计算机网络的安全通信,已经在互联网得到广泛应用。在 HTTPS 中,原有的 HTTP 协议会得到 TLS (安全传输层协议) 或其前辈 SSL (安全套接层) 的加密。因此 HTTPS 也常指 HTTP over TLS 或 HTTP over SSL。

下面由我来详细解释一下HTTPS 加密过程原理

  1. 首先客户端首次发起请求,服务端会生成CA数组证书(这个是收费的服务),这个证书中会包括服务端生成的公钥 ,同时服务端还会生成一份服务端私钥,但私钥并不会放在CA证书中
  2. 服务端将生成的CA证书响应至客户端,同时包含着服务端的公钥,将被客户端获取
  3. 客户端通过对CA证书的解析,拿到公钥,并根据此随机生成一个客户端私钥
  4. 客户端将随机生成的客户端私钥发送到服务端,服务端将使用之前生成的服务端私钥解密此次报文中的客户端私钥
  5. 至此https完成非对称加密,后续数据交互将采用客户端生成的私钥进行对称加解密
相关推荐
吠品4 小时前
命令行揭示SSL证书真相
https·github·ssl
三水不滴6 小时前
有 HTTP 了为什么还要有 RPC?
经验分享·笔记·网络协议·计算机网络·http·rpc
宝塔面板8 小时前
AllinSSL 一站式搞定 SSL 自动续期:永久免费,开源可自托管
网络·网络协议·ssl
csdn今天倒闭了吗8 小时前
飞牛lucky配置ipv6 ddns+ssl+反向代理
网络·网络协议·ssl
JavinLu8 小时前
ios 配置了代理且使用 chls.pro/ssl 下载不了证书,无法弹出下载证书的提示问题
网络协议·ios·ssl
菜鸟特工0078 小时前
javax.net.ssl.SSLPeerUnverifiedException 异常如何处理
网络协议·.net·ssl
天荒地老笑话么8 小时前
静态 IP 规划:掩码/网关/DNS 的正确组合
网络·网络协议·tcp/ip·网络安全
Tadas-Gao9 小时前
TCP粘包现象的深度解析:从协议本质到工程实践
网络·网络协议·云原生·架构·tcp
BLSxiaopanlaile10 小时前
《凤凰架构-构建可靠的大型分布式系统》读书笔记 -关于网络通信安全性的一些总结
http·加密·认证授权·网络通信安全
aesthetician10 小时前
实时通信的艺术:Server-Sent Events (SSE) 与 WebSocket 的深度解析
网络·websocket·网络协议