一、目的

对于项目关键接口、数据敏感接口等,采用安全等级更高的加密处理,防止抓包拦截、数据篡改、数据包伪造等操作

二、具体实现

实现过程如下:

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可以通过配置来更换,防止长时间固定不变

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注