NOTE

1.3 Hash

Hash 的基本概念、特性、使用场景以及 MD5、SHA-256。

Security创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. Hash是什么

将任意长度的“字节串”变换成一个大整数,并且它是一个不可逆的字符串变换算法

1.1. Hash vs 加密

  • Hash是单向的,加密是双向的
  • Hash可能会冲突,加密不会
  • Hash用于防止数据篡改,加密用于防止数据泄漏
    • 泄漏和篡改不是一件事:比如有一段密文,我随意改几个字符,然后解密依然可以进行,

2. Hash特性

完整性

2.1. Hash使用场景

  • 消息认证码
  • 数字签名 私钥对文件签名时,不是对文件的内容签名,而是对文件的Hash值签名

3. Hash函数类型

3.1. MD5

MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法

3.2. SHA256

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看