一、https是用RSA加密的≠整个https通信过程都用RSA
很多人都知道https是用RSA加密算法,同时很多人会误以为https整个通信过程都是用RSA加密。我们看下https的通信过程如下:
实际上https整个数据交互过程是用对称加密的,只是通信前协商“对称加密key"的过程是的RSA非对称加密。
思考:如果整个数据交互过程都是用RSA加密的,服务器发给客户端的数据,用私钥加密,公钥解密。这样加密有用吗?
结论:明显没有用,https要解决的问题就是中间人劫持,如果用公钥解密,公钥是公开的,劫持的人也就能用公钥获取到信息了。
二、“公钥加密,私钥解密”≠不能反过来“私钥加密,公钥解密”
除了“公钥加密,私钥解密”。还有“私钥签名,公钥验证”。它就是用“私钥加密,公钥解密”,就RSA密码而言,所谓公钥私钥,无非就是两组数字串,它们之间有着某种函数关系,可以相互之间加解密。
反过来用,不能起得数据加密传输的作用,但能起数子签名作用。