HTTP(HyperText Transfer Protocol):
HTTPS(HyperText Transfer Protocol over Secure Socket Layer):
- 可以理解为 HTTP + SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。
SSL(Secure Socket Layer,安全套接字层):
TLS(Transport Layer Security,传输层安全):
对称加密:
有流式、分组两种,加密和解密都是使用的同一个密钥。
例如:DES、AES-GCM、ChaCha20-Poly1305等
特点:算法公开,计算量小、加密速度快、加密效率高
非对称加密:公钥(全网公开),私钥(只能自己私有)
用 公钥加密,只能用 私钥解密
用 私钥加密,只能用 公钥解密
例如:RSA、DSA、ECDSA、 DH、ECDHE
特点:非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。
数字指纹(数据摘要),其基本原理是利用单向散列函数(Hash 函数)对信息进行运算,生成一串 固定长度 的数字摘要。数字指纹并不是一种加密机制,但可以用来判断数据有没有被窜改。
摘要常见算法:MD5、SHA1、SHA256、SHA512等
算法把无限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率非常低)
摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常用来进行数据对比。
摘要经过加密,就得到数字签名,可以证明信息没有被修改过。摘要一般都会加密后再和信息一起发送,以保证这个摘要不被修改。
【信息】 --hash--> 【摘要】 -- 加密--> 【签名】

HTTPS 工作过程中涉及到的密钥有三组。
第一组(非对称加密): 用于校验证书是否被篡改。
第二组(非对称加密): 用于协商生成对称加密的密钥。
第三组(对称加密):客户端和服务器后续传输的数据都通过这个对称密钥加密解密。