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完成非对称加密,后续数据交互将采用客户端生成的私钥进行对称加解密
相关推荐
ITxiaobing20232 小时前
海外广告投放的 IP 定位服务怎么选?一份基于实测数据的选型参考
网络协议·tcp/ip·php
cfm_29143 小时前
初步了解ECDHE密钥交换
http
Lsetea5 小时前
curl -I检查HTTPS返回405:HEAD、GET与证书验收分层排查
linux·http·https·ssl证书·curl
我命由我123455 小时前
Python 开发 - Python 虚拟环境
运维·开发语言·后端·python·http·https·java-ee
承渊政道6 小时前
Linux网络学习【传输层协议UDP】
linux·网络·网络协议·学习·ubuntu·udp
Chery11406 小时前
DPE5500 SPI以太网协议栈芯片详解:10/100M以太网、硬件TCP/IP与国产替代方案
arm开发·网络协议·tcp/ip
zxanz17 小时前
SSL 证书该怎么申请?操作复杂吗?
网络·网络协议·ssl
紧跟先前的步伐9 小时前
Go AI Agent 实战 08|HTTP 模型 API 的工作原理与请求流程
人工智能·http·ai·golang
syagain_zsx10 小时前
WebSocket 教程:websocketpp 写 echo 服务端
linux·网络·c++·websocket·网络协议·工具库
溪语流沙10 小时前
【Web全栈进阶】Nginx反向代理 + HTTPS:正式上线
前端·vue.js·python·nginx·https·fastapi