首先:我们先了解一下什么是RSA和AES
1、什么是RSA?
2、什么是AES?
通过上面,我们了解到。AES是目前主流的对称加密算法,而RSA是非对称加密算法。
什么是对称算法AES?
对称算法:请求发起方与接收方拥有相同的密钥。
发起流程:
1、请求方用密钥加密密文,发送给接收方。
2、接收方用密钥对密文进行解密。
问题:一旦密钥被坏人知道,密文的安全性将得不到保证。
什么是非对称加密RSA?
非对称加密:
1、公钥加密,私钥解密。
2、私钥加密,公钥解密。
发起流程:
1、生成密钥对:公钥、私钥。服务接收方保留私钥,而请求方保留公钥。
2、请求方用公钥对密文进行加密,发送给接收方。
3、服务方用私钥对密文进行解密。
问题:由于公钥是公开的,任何人都可以用公钥对私钥加密的信息进行解密。导致服务接收方返回的信息得不到保护。也就是说,请求得到的数据,任何人都可以用公钥对其解密。
通过以上我们知道了,单纯的使用对称加密或非对称加密,都无法对数据的传输进行有效保护。
所以我们引入RSA+AES:
我们先来描述一下加密的使用流程:
一:发起请求
1、生成RAS密钥对:公钥、私钥。服务接收方保留私钥,而请求方保留公钥。
2、请求方随机生成AES密钥。
3、请求方用AES密钥对密文进行加密。
4、请求方用RAS公钥对AES密钥进行加密。
5、将加密后的密文和加密后的AES密钥发送给接收方。
6、接受方用RAS私钥对加密后的AES密钥进行解密,得到真实的AES密钥。
7、接受方用AES密钥对密文进行解密,得到密文。
看到这儿,有的同学要问了,那服务器如何将信息安全的回传给客户端呢?别急,接着往下看。
二:数据回传
我们通过之前的步骤(发起请求),请求方与接收都已经拥有了相同的AES密钥(请求方随机生成的),在数据回传时,我们只需要将原文使用AES密钥进行加密,回传给请求方就可以了。
总结
一句话总结,什么是RSA+AES:
通过RAS公钥对随机生成的ASE密钥进行加密,与用AES加密的密文一同发送给服务器。服务器用RAS私钥对加密后的ASE密钥进行解密,用解密后的AES密钥解密密文。用解密后的AES密钥加密返回数据。
原文:https://blog.youkuaiyun.com/weixin_37765511/article/details/88369251