字符串哈希可视化器,免费

输入文本以计算并可视化比较 MD5、SHA-1、SHA-256 和 SHA-512 哈希,配有彩色区块。

工作原理

  1. 输入您的文本:输入或粘贴任意字符串 · 密码、文件内容、ID 或任何需要哈希的文本。
  2. 选择算法:根据需要选择 MD5、SHA-1、SHA-256、SHA-384 或 SHA-512。
  3. 复制哈希:哈希值会立即显示。复制用于存储、比较或验证。

为什么使用字符串哈希生成器?

哈希将任意字符串转换为该内容特有的固定长度指纹。即使修改一个字符也会产生完全不同的哈希值。这对于验证数据完整性、安全地存储密码、生成缓存键、去重记录和创建基于内容的 ID 至关重要。由于哈希是单向的,无法从哈希反推原文 · 这使得它能安全地存储敏感数据。

功能特性

常见问题

该选择哪种哈希算法?

对安全用途(密码、签名),使用 SHA-256 或 SHA-512。MD5 和 SHA-1 因安全原因已被弃用,但仍可用于不需要密码学强度的校验和和缓存键。

可以用此工具对要存储的密码进行哈希吗?

字符串哈希给您单向哈希值,但要存储密码,您需要使用含盐和迭代的密钥派生函数(如 bcrypt、Argon2 或 PBKDF2)。简单的 SHA 哈希速度太快,易受彩虹表攻击。

哈希是可逆的吗?

不可逆。哈希函数是单向的 · 无法从哈希恢复原始字符串。如果两个字符串产生相同哈希(碰撞),则是算法的缺陷。SHA-256 和 SHA-512 目前无已知实际碰撞。

哈希函数35年的历史:从MD5到BLAKE3

密码学哈希函数通过一长串的破解和替换循环进化。MD5由Ronald Rivest在RFC 1321(1992年4月)中作为MD4的继承者发布。它的128位输出被认为足够强大十多年,直到Wang和Yu在2004年发布了第一次实际碰撞。到2008年,研究人员已经使用MD5碰撞伪造了一个流氓SSL证书颁发机构。SHA-1由NSA设计并由NIST在FIPS 180-1(1995)中标准化。它的160位输出持续到2017年2月,当时Google和CWI Amsterdam宣布了SHAttered攻击,产生了两个具有相同SHA-1哈希的PDF。成本:在GPU上约6,500 CPU年等效。SHA-2(SHA-224、SHA-256、SHA-384、SHA-512)也来自NSA,发布在FIPS 180-2(2002年8月)。它使用与SHA-1相同的Merkle-Damgård构造,但具有更大的状态和更多轮次;今天对完整版本没有实际攻击。SHA-3(Keccak,由Bertoni等人)在NIST公开竞赛后被选中,并在FIPS 202(2015年8月)中标准化。SHA-3使用完全不同的海绵构造,对影响SHA-2的长度扩展攻击免疫。在NIST家族之外,BLAKE2(Aumasson等人,2012)和BLAKE3(2020)提供与SHA-3级别的安全性和MD5的速度;BLAKE3在现代笔记本电脑上约一秒钟哈希1 GB文件。

选择哪种算法:快速决策表

哈希实际使用的地方

损失金钱或破坏东西的哈希错误

更多常见问题

为什么MD5和SHA-1「破解」如果它们仍然产生哈希?

「破解」意味着攻击者可以比暴力破解更快地产生碰撞。对于MD5,在今天的笔记本电脑上找到两个具有相同哈希的输入需要几秒钟。对于SHA-1,2017年需要6,500 CPU年,自那以后急剧下降。哈希在机械上仍然有效;破解的是它们是「抗碰撞」的安全保证。对于非对抗性使用(对你信任的文件进行校验和以防止意外损坏),MD5仍然工作良好。对于任何涉及对手的事情,两者都不安全。

我应该担心量子计算机破解SHA-256吗?

比你想象的要少。Grover算法将对256位哈希的原像攻击从2²⁵⁶加速到2¹²⁸经典等效工作,这仍然实际上不可能。对称原语(哈希、AES)通过加倍密钥/输出大小在量子计算中生存。公钥密码学(RSA、ECDSA)是量子攻击下严重失败的,因此NIST后量子标准在2024年8月发布(ML-KEM、ML-DSA、SLH-DSA)。如果你今天使用SHA-256,在后量子时代SHA-512将绰绰有余。

哈希和HMAC之间有什么区别?

哈希(SHA-256)是无密钥的:任何拥有输入的人都可以计算相同的输出。HMAC(基于哈希的消息认证码)使用秘密密钥包装哈希,因此只有知道密钥的人才能计算或验证标签。在RFC 2104(1997)中定义,HMAC是对称地「签署」消息的标准方式(发送者和接收者共享一个秘密)。对webhook签名、JWT HS256、API请求签名使用HMAC-SHA256。secret + message上的简单SHA-256由于长度扩展而不安全。

为什么不同的库为同一字符串给出不同的哈希?

三个常见原因。首先,字符编码:UTF-8 vs UTF-16 vs Latin-1为非ASCII字符串提供不同的字节,因此不同的哈希。始终明确编码。其次,行尾:"hello\n""hello\r\n"哈希不同;Windows-vs-Unix文件校验和经常因此而不同。第三,输出格式:小写hex vs大写hex vs base64看起来像不同的值但表示相同的字节。在比较之前规范化输入和输出格式。

当我在这里哈希时,我的输入是否发送到服务器?

不。所有四个哈希都使用内置的Web Crypto API(crypto.subtle.digest)在你的浏览器中计算。在DevTools中打开网络选项卡并在输入中键入,你将看到零出站请求。对凭据、令牌或你想要哈希而不让它离开你的设备的任何私有值都是安全的。

相关工具

免费哈希生成器 免费JWT生成器 免费 UUID 生成器 免费在线 Base64 编码器与解码器