最近,程序员二狗子的脸上总是洋溢着幸福的笑容。哎,对了,因为二狗子恋爱了。恋爱对象是二狗子的好朋友雷霆介绍的,雷霆也是一名程序员。如果说到程序员和程序员之间的爱情,那就太神奇了。最近,正好二狗子开发了一款新的聊天软件。本来,他们两个有很多共同话题,这就太好了。现在他们用聊天软件没日没夜地聊个不停,事事都互相诉说。对称加密一天,二狗子和他的女朋友在用聊天软件讨论下周去哪里旅游,在哪个网站买便宜机票。二狗子陷入了沉思。我女朋友说的对聊天软件用户对加密通讯安全有强烈需求。要实现加密消息传输,双方都需要知道密钥,但密钥不能通过网络安全发送。唉,真让人头疼。RSA:AsymmetricEncryption自从二狗子和他的女朋友知道了对话消息是无法加密的之后,双方在聊天的时候就变得更加谨慎了。直到有一天,他们听说了一种新的加密算法,叫做RSA加密。RSA加密是一种非对称加密,无需直接传递密钥即可解密。与使用相同密钥的对称加密不同,它是通过一对密钥进行加密和解密的过程,这对密钥称为公钥和私钥。其中最有趣的是,用私钥加密的明文只能用公钥解密。反之,用公钥加密的明文,只有用对应的私钥才能解密。二狗子和女友了解到RSA加密后,都觉得这个算法很强,因为它可以完美解决对称加密在传输信息时的缺陷。我们可以通过下图详细了解算法的加密过程。从图中可以看出,当二狗子要给女友发消息时,首先需要女友生成一对密钥,并将公钥传给二狗子(女友的公钥是公开的,谁都知道)。得到公钥的二狗子用公钥向女友发送加密信息,女友用自己的私钥解密加密信息(私钥保密,只有女友才能解密)。反之,女朋友给二狗子发加密信息也是一样的。这样,双方只需要交换对方的公钥就可以实现消息的加密。非对称加密+对称加密非对称加密+对称加密这天,好久不见的二狗子和雷霆约好一起吃火锅,饭桌上两人聊得很开心。雷婷问起二狗子的感情状况,二狗子把和女朋友加密聊天的事情告诉了雷婷。如何稳妥地保护好钥匙二狗子正想着的时候,雷霆疯狂的啃着他的毛肚。而二狗子还在想:这又回到了最初的问题,如何安全地分发密钥?但是现在问题的重点是身份验证。肯定有办法证明公钥是女朋友的。那怎么证明呢……讨论完这件事,二狗子惊讶地发现桌上的整盘毛肚都不见了,连忙吃了几筷子就回家了。二狗子一回到家,就迫不及待地给女朋友打电话,分享了自己和雷婷商量的事情。女朋友听了很高兴,立马让二狗子给他的聊天软件装个证书。二狗子打开排云官网,选择SSL证书。聊天软件的问题终于可以解决了,二狗子再也不用担心感情中的中间人了。推荐阅读SSL详解(一):URL栏绿色小锁是什么意思?SSL详解(二):SSL证书对网站的好处
