RSA算法+AES算法的使用

客户端使用RSA + AES对重要信息进行加密

客户端加密过程主要分为以下三个步骤:

  1. 客户端随机产生AES的密钥;
  2. 对身份证信息(重要信息)进行AES加密;
  3. 通过使用RSA对AES密钥进行公钥加密。

这样在传输的过程中,即时加密后的AES密钥被别人截取,对其也无济于事,因为他并不知道RSA的私钥,无法解密得到原本的AES密钥,就无法解密用AES加密后的重要信息。

服务端使用RSA + AES对重要信息进行解密
服务端解密过程主要分为以下两个步骤:

  1. 对加密后的AES密钥进行RSA私钥解密,拿到密钥原文;
  2. 对加密后的重要信息进行AES解密,拿到原始内容。


现实开发中,服务端有时也需要向客户端传递重要信息,比如登录的时候,返回token给客户端,作为令牌,这个令牌就需要进行加密,原理也是差不多的,比上面多一个步骤而已,就是将解密后的AES密钥,对将要传递给客户端的数据token进行AES加密,返回给客户端,由于客户端和服务端都已经拿到同一把AES钥匙,所以客户端可以解密服务端返回的加密后的数据。如果客户端想要将令牌进行保存,则需要使用自己定义的默认的AES密钥进行加密后保存,需要使用的时候传入默认密钥和密文,解密后得到原token。

上面提及到客户端加密,服务端返回数据不加密的情况,上面说到仅仅使用RSA是可以,但是还是建议同时使用这两种算法。如果仅仅使用RSA,服务端只通过RSA解密,这样会对于性能会有所影响,原因是RSA的解密耗时约等于AES解密数据的100倍,所以如果每个重要信息都只通过RSA加密和解密,则会影响服务端系统的性能,所以建议两种算法一起使用。

 

posted @ 2022-03-18 13:52  Mr.Aaron  阅读(386)  评论(0编辑  收藏  举报