哈希/摘要简介
哈希(Hash)或摘要(Digest)是一种将任意大小的数据输入通过算法转换为固定长度输出的技术。这个固定长度的输出通常称为哈希值、散列值或消息摘要。
哈希的主要特性
- 固定长度输出:无论输入数据长度如何,哈希算法始终生成固定长度的输出。例如,SHA-256 算法总是生成 256 位的哈希值。
- 唯一性:不同的输入数据经过哈希算法处理后,会生成不同的哈希值,这一特性称为“碰撞抗性”。虽然在理论上存在碰撞的可能,但一个好的哈希算法应使得发生碰撞的概率非常低。
- 不可逆性:从哈希值无法还原出原始数据,即哈希算法是单向的。这使得哈希算法适用于数据校验、密码存储等场景。
- 微小变化影响:输入数据的微小变化会显著改变生成的哈希值,这种特性叫做“雪崩效应”。
哈希的常见应用
- 数据完整性校验:通过比较源数据与目标数据的哈希值,确保数据在传输或存储过程中未被篡改。
- 密码存储:密码通常以哈希值的形式存储,确保即使密码库被泄露,攻击者也无法轻易获取原始密码。
- 数字签名和加密:哈希值常用于生成数字签名,验证数据的真实性和完整性。
- 去重处理:哈希值可以用于快速判断数据是否重复,常用于数据库和缓存系统中。