数据传输加解密应用层的加解密


结合对对称加密算法和非对称加密算法以及哈希算法的了解,对前后端数据传输进行加密传输,原理不外乎, 对称加密传输Data,非对称加密对称秘钥,计算传输Data的摘要,确保数据的安全性和完整性

各种加密算法及特点

对称加密算法

特点:
加密和解密使用相同密钥
算法公开、计算量小、加密速度快、加密效率高

常见算法:
DES
3DES
AES
IDEA
Blowfish算法,RC5算法
RC2、RC4、RC5

非对称加密算法

特点:
加密和解密使用不同密钥
1、公钥公开,私钥私藏,无需双方传输密钥协商,所以安全性比对称加密算法更高
2、非对称加密的算法复杂,运算速度比对称加密解密的速度慢很多
3、一般情况下使用非对称加密保护对称加密的密钥,密钥协商后使用对称加密进行通信
4、最佳实现是双方各自保存自己的私钥,使用对方的公钥加密数据传输
常见算法:
RSA、DSA、ECC、DH

摘要算法-又叫哈希算法-又叫散列算法

特点:
任何数据加密,得到的密文长度固定。 密文是无法解密的(不可逆)
常见算法:
MD5、SHA-1、SHA-256

数据传输加解密前端传参分为三部分

前提:客户端服务端商定好对称加密算法,和非对称加密算法

1. 对称秘钥加密数据Data

客户端生成两个随机数,R1,R2
随机数R1作为对称秘钥,用对称加密算法,对称秘钥R1加密Request Data,生成密文M1

2. 生成带秘钥的哈希HMAC

用随机数R2、以及哈希算法(SHA-1),计算出带秘钥的哈希HMAC

3.公钥加密对称秘钥

公钥存放在客户端,直接拿来用。
公钥加密两个随机数,生成密文M2

服务器解密

1. 服务器解密出对称秘钥

服务器收到请求后,用服务器私钥,解密M2,计算出两个随机数R1,R2

2. 服务器解密出明文

服务器用R1解密密文M1,得到原文Request Data

3.对比HMAC

服务器拿Request Data和R2计算带秘钥的哈希,与客户端传过来的HMAC做对比,一致,则信息完整,不一致,则报错

服务器加密浏览器解密

服务器用对称秘钥R1加密response Data,发给客户端;并用R2计算带秘钥的哈希HMAC。客户端收到后,拿这次请求发送的随机数R1解密响应数据;用R2计算HMAC对比传过来的HMAC,一致则数据完整。
至此,完成一次加密通信。

每次请求都是这个过程,因为每次调接口,都是随机生成的随机数R1,R2作为对称秘钥。无论请求还是响应都需要验证数据的机密性和完整性,都需要计算摘要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值