对称加密与非对称加密和HTTPS
为什么需要加密,因为HTTP是明文传输,不安全。 对称加密 浏览器和服务器使用同一个密钥进行加密和解密。没有该密钥不能获取到传输的内容。看似是正确的没有错误。但是怎么保证该密钥能安全的让双方知道呢,服务器生成密钥发送给浏览器的过程中是有可能被截获该密钥的。有的人可能会想,如果浏览器一开始就有该密码就可以了,但是你想想让浏览器去保存所有HTTPS网站的密钥?这不现实吧。 非对称加密 浏览器和服务器同时拥有公钥和私钥,公钥用来加密,私钥用来解密。公钥是可以在网络中传输的。 过程是这样的: 浏览器拥有公钥A和私钥A',服务器拥有公钥B和私钥B' 浏览器向服务器发送请求时,服务器明文传输公钥B给浏览器。 浏览器用公钥B进行加密发送给服务器,服务器收到后用私钥B'进行解密,因为只有服务器有该密钥B',所以是安全的。 同理,服务器向浏览器传输的道路上用浏览器的公钥加密,浏览器收到后用浏览器的私钥进行解密。 这样两条路的安全都可以保证是安全的了(其实是不安全的) 先抛开非对称加密的不安全性不说来谈谈为什么HTTPS不是用的这种加密? 很简单,这种方式太过于繁琐和耗时,效率不高。而对称加密算法则比这快的多,那么我们可不可以使用两者的结合呢? 非对称加密+对称加密 HTTPS真正采用的是这种加密方式。 大致的过程就是使用非对称加密的方式传送密钥,那么该密钥就是双方就安全的得到了