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完成非对称加密,后续数据交互将采用客户端生成的私钥进行对称加解密
相关推荐
工控小楠2 小时前
DeviceNet转Modbus TCP网关的远程遥控接收端连接研究
网络·网络协议·devicenet·profient
midsummer_woo4 小时前
【2025年】解决Burpsuite抓不到https包的问题
网络协议·http·https
光芒Shine5 小时前
【物联网-TCP/IP】
网络·网络协议·tcp/ip
小白杨树树7 小时前
【WebSocket】SpringBoot项目中使用WebSocket
spring boot·websocket·网络协议
云计算-Security7 小时前
如何理解 IP 数据报中的 TTL?
网络协议·tcp/ip
itachi-uchiha8 小时前
命令行以TLS/SSL显式加密方式访问FTP服务器
服务器·网络协议·ssl
稳联技术9 小时前
实践提炼,EtherNet/IP转PROFINET网关实现乳企数字化工厂增效
网络·网络协议·tcp/ip
Icoolkj9 小时前
WebRTC 与 WebSocket 的关联关系
websocket·网络协议·webrtc
红米饭配南瓜汤9 小时前
WebRTC中的几个Rtp*Sender
网络·网络协议·音视频·webrtc·媒体
猫头虎12 小时前
[特殊字符]解决 “IDEA 登录失败。不支持早于 14.0 的 GitLab 版本” 问题的几种方法
java·ide·网络协议·http·https·gitlab·intellij-idea