安全与账号
哈希生成器 — MD5、SHA-1、SHA-256、SHA-512
一次性计算文本的四种常用哈希值,并列显示便于快速比对。
什么是哈希生成器 — MD5、SHA-1、SHA-256、SHA-512?
哈希函数把任意长度的输入转换成固定长度的字符串。相同的输入总是得到相同的结果,但从结果无法反推回原始输入。这一特性使哈希成为校验文件完整性、比对内容和存储密码的基础工具。
本工具同时计算四种哈希值:MD5、SHA-1、SHA-256 和 SHA-512。三种 SHA 使用浏览器内置的 Web Crypto API;MD5 不在 Web Crypto 的支持范围内,因此按照 RFC 1321 用 JavaScript 直接实现。
关于安全性需要说明:MD5 和 SHA-1 都已被攻破,也就是说可以刻意构造出哈希值相同的两份不同内容。它们用来比对文件校验和仍然没问题,但绝不能用于数字签名或密码存储。凡涉及安全用途,请使用 SHA-256 或更强的算法。
使用方法
- 在文本框中输入或粘贴需要哈希的内容。
- 四种哈希值会随您的输入实时计算并更新。
- 在需要的算法那一行点击复制。
- 要校验下载的文件,请粘贴发布方公布的校验和,逐字符对照。
常见问题
可以对文件做哈希吗,还是只能处理文本?
目前只支持文本。处理文件建议使用系统自带的命令:Windows 上用 certutil -hashfile 文件名 SHA256,Linux 和 macOS 上用 sha256sum 文件名。对大文件而言这种方式快得多。
MD5 既然不安全,为什么还在用?
因为这是两种不同的用途。用来发现下载过程中的意外损坏,MD5 表现良好且计算极快。它做不到的是抵御蓄意攻击——两份不同的文件可以被构造成拥有相同的 MD5。用于检查传输错误可以,用于证明真实性则不行。
哈希值能反解成原文吗?
不能,哈希是单向的。那些宣称能「解密 MD5」的网站,实际上只是在预先算好的常见字符串表里查找。面对较长或随机的内容,这种方法就失效了。
存储密码应该用哪种算法?
这四种都不该用。密码存储需要 bcrypt、scrypt 或 Argon2 这类带盐的慢速哈希函数。SHA-256 不适合的原因恰恰在于它太快——攻击者同样可以飞快地逐个尝试。