现在HTTPS的加密通信方式:

1.通信双方各自持有自己的:公钥+私钥

2.通信双方通信时,交换公钥,保留自己私钥。

3.公钥和私钥是配对的、但是不是对称的一对钥匙。即:就算你知道公钥长什么样子,你也几乎不可能知道私钥长什么样子

老公,我好爱你哟" 代表 "老公帮我清空购物车车车车车车"。

          1.这里,我的公钥就是"老公,我好爱你哟",我老婆可以在任何人面前,可以说给我听,表现她很爱我的亚子。

老公帮我清空购物车车车车车车"。

          3.万一哪天被人知道私钥了呢?几乎不可能,中国文字何止千万,别说谁能知道我在后面加了6个车,连前面的几个汉字也

             不太可能被解析。

4.公钥加密时,自我不可逆向解密,即:公钥加密不可以自我解密,只能通过私钥解密。

注意:公钥和私钥的配对方式,是有固定算法的,小弟没有研究过。

考虑一个问题,公钥加密的密文信息,用公钥本身可以解密这个密文信息吗?

1.如果你得出公钥能解密公钥自己加密的信息,那就错了,公钥是任何人都可以看见的,公钥自己如果能解密自己加密的东西,还加密做什么?

2.如果你得出公钥不能解密公钥自己加密的信息,正确的。公钥加密后,公钥自己不能解密自己加密的东西,即:公钥不能自我逆向解密。这样才能保证秘钥持有者,是唯一一个可以打开公钥密文的对象。

再考虑一个问题,公钥可以解密私钥加密的密文吗?

可以,私钥加密的密文,公钥可以对其解密。

1.HTTPS中,服务器会有公钥证书,服务器公钥证书 = 认证机构的数字签名 + 服务器公钥。

2.认证机构的数字签名,就是认证机构用认证机构的私钥加密后的数字签名。

3.认证机构会把数字签名部署到服务器上,再加上服务器的公钥,生成服务器的公钥证书。

4.浏览器是默认植入了认证机构的公钥证书的,所以,浏览器要验证服务器公钥证书的真实性,只需要用认证机构的公钥解密服务器公钥证书上的数字签名,就能验证真实性了。验证后,开始和服务器通信。这里验证就是公钥解密私钥密文的典例。

最后考虑个问题,服务器传输时,会用自己的私钥加密密文吗?

1.不会的,公钥是公开的,私钥加密密文,公钥随时可以对密文解密,用私钥加密等于没有加密,就像数字签名一样,但是数字签名是为了验证手里的服务器公钥证书是不是真实的,才会用私钥加密数字签名来发布服务器公钥证书。

2.所以,服务器会用客户端的公钥,对密文加密,让客户端用客户端自己的私钥解密。

3.同理,客户端会用服务器的公钥,对密文加密,让服务器用服务器自己的私钥解密。