加密相关总结
分组加密(对称加密是一种分组加密)
特点:加密解密使用同一个秘钥
优点:加解密简单,速度快
缺点:秘钥传输问题,只要秘钥未被泄露,这是最快的加密方式
DES对称加密算法 - des包
AES对称加密算法 - aes包
分组密码算法五种标准分组模式 - cippher包
公钥密码(非对称加密)
特点:加密解密使用不同的秘钥,私钥保存,公钥公开。
优点:相对安全
缺点:加密复杂,速度慢
RSA公钥密码算法 - rsa包
标准椭圆曲线算法 - elliptic包
其他加密
tls协议 - tls包
X.509编码格式的秘钥和证书的解析 -x509包
DSA数字签名算法 - dsa包
单向散列函数(哈希函数) - 消息摘要/签名
特点:给原文生成固定长度的散列值,不同的原文可能生成相同的散列值,但概率很低,这叫碰撞。
md5包:实现了RFC 1321中定义的MD5哈希算法。
sha1包:实现了RFC 3174中定义的SHA-1哈希算法。
sha256包:实现了NIST标准中的SHA224和SHA256哈希算法。
sha512包:实现了NIST标准中的SHA384和SHA512哈希算法。
消息认证码(Message Authentication Code,MAC)
hmac包:实现了NIST标准中的基于单向散列函数的消息认证码(HMAC)算法。
| 加密方式 | 检查篡改 | 防泄漏 | 检查伪装 | 防否认 | 安全传输 | 用途 |
|---|---|---|---|---|---|---|
| 对称加密 | 否 | 否 | 否 | 否 | 否 | 加密(性能好) |
| 非对称1(私加公解) | 是 | 否 | 是 | 是 | 否 | 签名 |
| 非对称2(公加私解) | 是 | 是 | 否 | 否 | 否 | 加密(性能差) |
| 消息摘要/单向散列 | 是 | - | 否 | 否 | - | 防篡改 |
| 对称加密+单向散列 | 是 | 是 | 是 | 否 | 否 | 消息认证码 |
| 非对称1+单向散列 | 是 | 是 | 是 | 是 | 否 | 数字签名 |
| 对称+非对称1+摘要+证书 | 是 | 是 | 是 | 是 | 是 | https |
htts大致原理
- 只要秘钥不泄露就不存在篡改、泄露和伪装的问题,但是秘钥的本身传输通信双方是无法加密的。
- CA机构,使用自己的私钥加密服务端的公钥,生成证书发送给客户端。
- 客户端使用CA机构的公钥解析证书,得到服务端的公钥等信息。(私钥加密无法篡改证书)
- 客户端使用服务端的公钥对自己的秘钥M(对称秘钥)加密,将其发送给服务端。(公钥加密防篡改和泄露)
- 之后通过对称秘钥M加解密就可以实现安全通信了。
- 单向散列算法以及校验规则也可以和服务器公钥一起放入证书。

浙公网安备 33010602011771号