常见加密算法&HTTP数据传递的加密

密码算法

1.数字签名

摘要算法,对任意长度的数据,计算出固定长度的16进制字符串。

MD5:128bit,32位十六进制
SHA1:160bit,40位十六进制

用途:校验数据的完整性;密码的传输和保存

2.对称加密

加密算法,加密和解密使用相同的密钥(或者使用两个可以简单的互相推算的密钥)

常见算法:DES、AES、3DES、Blowfish、IDEA、RC5、RC6。

优点:加密解密速度快,对资源消耗小
缺点:无法保证密钥传输的安全性

3.非对称加密

加密算法,加密解密由公钥+私钥完成,公钥是公开出去的,私钥是自己保存的。

常见算法:RSA

包含:
KeyGen:密钥生成算法,PK,SK=KeyGen()
Encrypt:加密算法,X=Encrypt()
Decrypt:解密算法,M=Decrypt()
Sign:签名算法,sign=Sign(SK,M)
Verify:验证算法,b=Verify(PK,sign,M)
注:PK:公钥。SK:私钥。M:明文。X:密文。sign:明文的签名。

用途:
a.公钥加密,私密解密。用于传输数据的加密。
b.私钥签名,公钥验签。用于传输数据的完整性校验。

优点:加密解密算法使用不同的密钥。
缺点:加密解密速度慢,资源消耗大。

HTTP数据传递的加密

HTTP对称加密
1.客户端生成对称密钥K
2.明文传递K到服务端
3.服务器接收到K,明文加密为密文返回
4.客户端通过K,将密文解密

缺点:密钥传输过程安全性无法保证,会被嗅探

HTTP非对称加密
1.客户端随机生成非对称加密密钥PK1,SK1
2.客户端把PK1明文发送给服务端
3.服务端随机生成对称加密K,并用PK1机密后发送给客户端
4.客户端拿到通过PK1加密后的K,通过SK1解密后,获取到服务器端发过来的对称加密密钥
5.双方完成对称加密密钥的交换,接下来就可以用K来进行数据加密传输

缺点:缺乏身份验证机制,容易受到中间人攻击

HTTPS传输

CA:证书管理机构。负责发放证书,确保证书申请者的身份和合法性等。

1.客户端发出请求,告诉服务器支持的加密算法,SSL/TLS协议版本号等
2.服务端选出最终算法和协议回复客户端,并带上服务器的证书(包含PK)
3.客户端校验证书的合法性并取出服务器PK,使用最终算法生成对称密钥K
4.客户端使用服务端的PK加密K后发送给服务端
5.服务端使用SK解密出对称加密K,并校验数据的完整性,然后使用K加密数据返回给客户端
6.客户端使用K解密数据并校验数据的完整性,握手完毕
7.双方完成对称加密密钥的交换,接下来进行数据加密传输
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值