结合对对称加密算法和非对称加密算法以及哈希算法的了解,对前后端数据传输进行加密传输,原理不外乎,对称加密传输Data,非对称加密对称秘钥,计算传输Data的摘要,确保数据的安全性和完整性
数据传输加解密前端传参分为三部分
1. 对称秘钥加密数据Data
前提:客户端服务端商定好对称加密算法,和非对称加密算法
客户端生成两个随机数,R1,R2
随机数R1作为对称秘钥,用对称加密算法,对称秘钥R1加密Request Data,生成密文M1
2. 生成带秘钥的哈希HMAC
用随机数R2、以及哈希算法,计算出带秘钥的哈希HMAC
3.公钥加密对称秘钥
公钥加密两个随机数,生成密文M2
服务器解密
1. 服务器解密出对称秘钥
服务器用服务器公钥,解密M2,计算出两个随机数R1,R2
2. 服务器解密出明文
服务器用R1解密密文M1,得到原文Request Data
3.对比HMAC
服务器拿Request Data和R2计算带秘钥的哈希,与客户端传过来的HMAC做对比,一致,则信息完整,不一致,则报错
服务器加密浏览器解密
服务器用对称秘钥R1加密response Data,发给客户端;客户端收到后,拿这次请求发送的随机数R1解密响应数据;
至此,完成一次加密通信