一、目的
对于项目关键接口、数据敏感接口等,采用安全等级更高的加密处理,防止抓包拦截、数据篡改、数据包伪造等操作
二、具体实现
实现过程如下:
1.Web客户端启动,发送请求到服务端,服务端用RSA算法生成一对公钥和私钥,我们简称为pubkey1,prikey1,将公钥pubkey1返回给web客户端
2.Web客户端拿到服务端返回的pubkey1后,自己用RSA算法生成一对公钥和私钥,我们简称为pubkey2,prikey2,并将公钥pubkey2、特殊处理的时间戳(相关位运算)通过公钥pubkey1加密,加密之后传输给服务端
3.此时服务端收到web客户端传输的密文,用私钥prikey1进行解密,因为数据是用公钥pubkey1加密的,通过解密就可以得到客户端生成的公钥pubkey2
4.服务端生成AES密钥,生成了这个key之后我们就用公钥pubkey2进行加密,返回给web客户端,因为只有web客户端有pubkey2对应的私钥prikey2,只有web客户端才能解密,web客户端得到数据之后,用prikey2进行解密操作,得到AES的加密key,最后就用加密key进行数据传输的加密,至此整个流程结束。
图示如下:
客户端不保存密钥key,需要的时候通过请求来获取,这样基本能保证密钥key被盗用的可能性
服务器的密钥key可以通过配置来更换,防止长时间固定不变