加密解密
一、对称加密
加密解密用的都是同一个秘钥
1、DES
DES是一种将64bit明文加密成64bit明文密文对称密码算法,秘钥长度是56bit
- 了解:规则上来讲,秘钥长度是64bit,但每隔7bit会设置一个用于错误检查的bit,因此秘钥长度实际上是56bit,目前已经可以在短时间内破解,不建议使用
2、3DES
image.png将DES重复3次所得到的的一种加密算法,也叫3重DES
- 了解: 3个秘钥都是不同的
3、AES
-
秘钥配送问题
如果A将使用对称密码加密过的消息发送给了B,只有将秘钥发送给B,B才能破解,但在发送秘钥的过程中,可能会被C窃取秘钥,最后C也能完成解密
解决办法:
1、实现共享秘钥
2、秘钥分配中心
3、秘钥交换算法
二、非对称加密
1、RSA
参考
RSA加密、解密、签名、验签的原理及方法
iOS中使用基于RSA使用公钥加密和公钥解密
iOS 实现RSA公钥解密
iOS中使用RSA加密详解
三、混合密码系统
HTTPS中的加密就是用的混合密码系统
-
加密过程
假设 A 消息发送者 B消息接收者
1、B生成一对公钥、私钥
2、B把公钥分享给A
3、A随机生成一个会话秘钥(临时秘钥)
4、A用会话秘钥加密需要发送的消息(对称秘钥加密)
5、A用B的公钥加密会话秘钥(非对称加密)
6、A把4、5步加密的结果,一并发给B
-
解密过程
1、B用自己的私钥解密会话秘钥(非对称解密)
2、B用会话秘钥解密发送过来的消息(对称解密)
单向散列函数
参考
单向散列函数这篇文章的作者应该和我看的是同一个学习资料,我就不做记录了😁
MD4
MD5
SHA-1
SHA-2
SHA-3
网友评论