今天跟第三方公司对接别人看了我写的文档当时文档写的是DES加密,然后我的一个回答都让我觉得对不起别人,我说了是AES加密,当时AES和RSA加解密的原理我不了解导致我也误解了别人,今天就特意去理解了一下,下面就看一下RSA非对称的加解密吧
首先先来说一下RSA和AES的区别吧
RSA
非对称加密,公钥加密,私钥解密,反之亦然。由于需要大数的乘幂求模等算法,运行速度慢,不易于硬件实现。
通常私钥长度有512bit,1024bit,2048bit,4096bit,长度越长,越安全,但是生成密钥越慢,加解密也越耗时。
既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;
同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。
AES
对称加密,密钥最长只有256个bit,执行速度快,易于硬件实现。由于是对称加密,密钥需要在传输前通讯双方获知。
基于以上特点,通常使用RSA来首先传输AES的密钥给对方,然后再使用AES来进行加密通讯。
好啦说完区别就来看一下RSA如何实现加解密的吧
第一步需要去:http://web.chacuo.net/netrsakeypair 这里生成两队公私钥,我用的是2048位(bit),PKCS#8的格式生成公私钥,我把公私钥放到了一个文件里面所以,下面的代码就是RSA的加密代码:
好啦上面就是RSA的加密啦
下面来看一下RSA的解密的代码吧!
好啦这些就是RSA的加解密的代码啦!!!