【每日一知】什么是哈希? (2021.02.04 )
一、简介
Hash,一般译做"散列",也可音译为"哈希"。
指把任意长度的输入(预映射 pre-image),
通过散列算法(Hash function)
变换成固定长度的输出(散列值)(通常为字母和数字组成的字符串)
二、特点
哈希运算有两个特点:
- 唯一性
只要原始信息***更改哪怕一个字节***,哈希计算的结果都会 完全不同。 - 不可逆
哈希算法***不能*** 从结果推算出输入。
三、常见的哈希算法
-
MD5 消息摘要算法(MD5 Message-Digest Algorithm)
可以产生一个128位(16字节)的哈希值,用于确保信息传输完整一致。 -
SHA 安全哈希算法(Secure Hash Algorithm)
- SHA-1 适用于数字签名算法(Digital Signature Algorithm DSA)。
- SHA-256 是SHA-2下细分出的一种算法,一种密码散列函数算法标准,是SHA-1的后继者。
SHA-2包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
这些变体摘要长度、循环次数不同,但算法的基本结构是一致的。
四、应用
- 文件校验
比对md5哈希值,从统计上保证两个文件是完全相同的,检验传输过程中是否出现错误,保证文件在传输过程中未被恶意篡改。 - 数字签名
只有信息的发送者才能产生的别人无法伪造的一段数字串,同时也是对信息的发送者发送信息真实性的一个有效证明。 - 鉴权协议
用于验证用户是否拥有访问系统的权利。 - 网站注册
- 区块链