Hash算法
特点
- 对任意输入,都有固定长度的输出
- 相同的输入,必然具有相同的输出;不同的输入可能产生相同的输出(哈希碰撞)
- 如何衡量哈希安全性:(1)无法猜测输出 (2)哈希碰撞概率低
常见的哈希算法
- MD5(128 位)
- SHA1
- SHA256(256位)
- SHA512(512位)
对称加密与非对称加密
对称加密
- 常见算法:ASE(使用广泛)、 DES
- 策略:使用同一个密钥对明文加密,对密文解密
非对称加密
- 常见算法:RSA
- 策略: 公开公钥,保存私钥;用公钥加密,私钥解密
优劣对比
- 对称加密需要协商密钥,而非对称加密可以安全地公开各自的公钥;
- 对称加密快,非对称加密慢
- 使用非对称加密只需要N个密钥对,每个人只管理自己的密钥对。而使用对称加密需要则需要N*(N-1)/2个密钥,因此每个人需要管理N-1个密钥,密钥管理难度大,而且非常容易泄漏。
实际应用
- 通过RSA(非对称)交换AES口令
- 接下来双方通信实际上采用的是速度较快的AES对称加密,而不是缓慢的RSA非对称加密。
签名算法
常用算法
- MD5withRSA
- SHA1withRSA
- SHA256withRSA
策略
- 私钥加密,公钥解密
- 应用:使用数字签名的目的是为了确认某个信息确实是由某个发送方发送的,任何人都不可能伪造消息,并且,发送方也不能抵赖。
Reference
[1]https://www.liaoxuefeng.com/wiki/1252599548343744/1304227729113121
[2]