Hash 哈希生成
同时生成 MD5、SHA-1、SHA-256、SHA-512、SHA-3 哈希,支持 HMAC 带密钥哈希。
输入内容实时计算
MD5不安全128 位
b442ae92587ccbbf476ece79acf97e48
SHA-1不安全160 位
ff0102868617afb206f84fcd6a5195e2970d1df0
SHA-256推荐256 位
0886d128b82814c31a3dc2f5215ada0c25eb673c30b62c380e00ee860585641d
SHA-512512 位
a5a835c4da0b9af17499c4df0a93a3f6919211acb1989d83464db6eac5b42e446542607a490a632f61dbf1a9c408c1753a28b32fda6e30cc26895a607d6483e3
SHA-3 (256)256 位
063f0a1ce69237ac927d34684b95a8f1fb099877ccbef71f3f0f97f619c0d0ee
RIPEMD-160160 位
d68ceb0010cb14e8fbc1c597dba89a133214394e
哈希生成器
同时生成 MD5、SHA-1、SHA-256、SHA-512、SHA-3、RIPEMD-160 六种哈希,支持 HMAC 带密钥哈希。哈希是单向不可逆函数, 相同输入永远产生相同输出,但无法从输出反推输入。常用于完整性校验、密码存储、数字签名、区块链等场景。
算法对比
- MD5(128 位):已不安全,存在碰撞,仅用于非安全场景的校验和。
- SHA-1(160 位):已被攻破,2017 年 Google 公布 SHAttered 碰撞,不推荐用于新场景。
- SHA-256(256 位):当前主流,用于区块链、TLS 证书、密码加盐哈希。
- SHA-512(512 位):更长,安全性更高,但速度稍慢。
- SHA-3(256 位):新一代 Keccak 算法,结构与 SHA-2 完全不同,作为 SHA-2 的备份方案。
- RIPEMD-160(160 位):比特币地址生成、PGP 指纹计算使用。
哈希的典型应用场景
哈希函数在现代计算中无处不在。文件完整性校验是最经典的用途——下载大文件后计算哈希与官方公布的对比,确保文件没被篡改。各大开源发行版官网都会提供 SHA-256 校验值。数字签名中,由于签名算法处理长数据很慢,通常先对数据做哈希再对哈希值签名,TLS 证书、PDF 签名都是如此。
密码存储场景需要特别注意:直接用 MD5/SHA-256 存密码极不安全,因为攻击者可以用彩虹表(预计算的哈希表)秒破。正确做法是使用专门的密码哈希算法(bcrypt、scrypt、Argon2),它们内置 salt 和可调节的计算成本,能有效抵抗暴力破解。区块链是哈希的另一大应用——工作量证明(挖矿)本质就是寻找使区块哈希小于目标值的 nonce,SHA-256 是比特币的核心哈希。Git 用 SHA-1(正迁移到 SHA-256)作为 commit、tree、blob 的唯一标识,实现内容寻址存储。
哈希碰撞是指两个不同输入产生相同哈希输出。MD5 和 SHA-1 已被证明可构造碰撞,不再安全。SHA-256 目前没有已知碰撞,理论碰撞概率为 2^-128(生日攻击),在可预见未来安全。选择哈希算法时,安全场景一律用 SHA-256 或更高。
Hash 常见问答
哈希和加密有什么区别?
哈希是单向不可逆函数,无法从哈希值还原原文,用于完整性校验、密码存储、数字签名。加密是双向的,可用密钥解密还原原文,用于保护数据机密性。
MD5 还能用吗?
MD5 存在已知碰撞攻击,不应用于任何安全场景(如密码存储、数字签名)。仅适合非安全场景的校验和、文件去重。密码存储请用 bcrypt/scrypt/Argon2,完整性校验请用 SHA-256。
SHA-256 和 SHA-512 选哪个?
两者都安全。SHA-256 更通用,广泛用于区块链、TLS 证书。SHA-512 在 64 位系统上更快(因使用 64 位字),适合大规模数据。日常使用 SHA-256 足够。
HMAC 是什么?和普通哈希的区别?
HMAC(Hash-based Message Authentication Code)是带密钥的哈希,用于验证消息完整性和真实性。普通哈希任何人都能计算,HMAC 只有知道密钥的人才能生成有效值。微信支付、阿里云 API、GitHub Webhook 等签名都使用 HMAC-SHA256。
可以用哈希存密码吗?
普通哈希存密码不安全,攻击者可用彩虹表秒破。密码存储必须用专门算法如 bcrypt、scrypt、Argon2,内置 salt 和慢速计算抵抗暴力破解。