什么是哈希算法?
哈希算法(Hash Algorithm)是一种将任意长度的输入数据转换为固定长度输出的单向函数。这个输出值称为"哈希值"或"摘要",具有以下特点:
- 确定性:相同的输入必定产生相同的输出。
- 不可逆:无法从哈希值反推出原始数据。
- 抗碰撞:极难找到两个不同的输入产生相同的哈希。
- 雪崩效应:输入的微小变化会导致输出的巨大差异。
常见算法对比
- MD5(128 位):速度快,已被证明存在碰撞,不推荐用于安全场景,常用于文件校验和非加密用途。
- SHA-1(160 位):同样存在碰撞攻击,已被弃用,但仍用于一些旧的版本控制(如 Git)。
- SHA-256(256 位):目前最广泛使用的安全哈希算法,是 SSL/TLS、Bitcoin、区块链等场景的标准选择。
- SHA-384(384 位):SHA-2 家族中更长的输出,安全性更高。
- SHA-512(512 位):SHA-2 家族中最长的输出,提供最高安全级别,适用于对安全要求极高的场景。
使用场景
- 文件完整性校验:下载大文件后比对哈希值,确保文件未被篡改。
- 密码存储:存储密码的哈希值而非明文(实际应配合 salt 多次迭代)。
- 数字签名:对消息计算哈希后用私钥签名。
- 数据去重:通过哈希快速识别重复文件。
- 区块链与加密货币:比特币使用 SHA-256 挖矿。
- API 防篡改:对请求参数计算哈希生成签名。
使用建议
对于新的安全场景,推荐使用 SHA-256 或更强的算法。如果对性能有要求且不涉及安全(例如单纯的本地文件去重),可以使用 MD5,但请勿用于密码、签名等任何安全敏感场景。
本工具所有计算均在浏览器本地完成,文件不会上传到任何服务器,请放心使用。