介绍
粘贴文本,选一个算法,读出摘要。来这里的通常理由是比对:手上有一个别处给的哈希,想知道自己这份内容算出来是不是同一个。
使用方法
粘贴文本,选择 SHA-1、SHA-256 或 SHA-512 后生成。和公布的值比对时,先确认两边用的是同一个算法,再从不一致里得出任何结论。
三种算法怎么选
SHA-256 是新场景的默认,也是多数公布的校验值在用的。SHA-512 给出更长的摘要,在 64 位硬件上往往更快,不过只有在量大时才有意义。SHA-1 还在列表里,是因为更老的系统和更老的记录仍然在说这门语言,拒绝计算它并不会让那些系统消失。新东西不该选它。
空白字符也算输入
哈希是精确的。行尾多一个换行会让摘要完全变样,一边用 Windows 行尾而另一边用 Unix 行尾也一样,从复制的网页里悄悄带进来的一个不换行空格同样如此。比对失败而两段文字看起来一模一样时,差别几乎总在行尾,或者在一个不显示出来的字符上。
文本在这里,文件用本机命令
这个页面算你粘进来的东西。文件更适合交给系统本来就带的命令,一来什么都不用上传,二来它乐意读一个大到浏览器文本框不想装下的值。用这里去核对一个字符串、一段配置,或者别人发给你的一个值。
哈希不是密码存储方案
把密码的 SHA 值直接存起来是一个众所周知的错误,因为这个函数很快,而快正是攻击者想要的。密码存储需要一个刻意设计得很慢、并且按用户加盐的函数,也就是 bcrypt、scrypt 或 Argon2。用这里去验证内容,而不是去保护凭据。
常见问题
摘要能还原成原文吗?
不能。哈希按设计是单向的,而这个性质正是它适合做比对的原因。
该选哪个算法?
没有别的约束就选 SHA-256。SHA-512 也可以,在 64 位机器上有时还更快。SHA-1 留在列表里是给还认它的老系统用的,不是因为它是个好选择。
能算文件的哈希吗?
这里接受文本。文件请用系统自带的命令,Windows 上是 certutil,macOS 上是 shasum,Linux 上是 sha256sum。
两份看起来一样的输入算出了不同的摘要。
字节层面有东西不同。行尾多一个换行、一边是 Windows 行尾另一边是 Unix 行尾,或者从网页复制时带进来的不换行空格,都会造成这个结果。
相关工具
- 安全与生成工具
- 本地随机密码
在浏览器里生成随机密码。
- 本地密码强度估算
在浏览器里估算密码强度。
- 本地随机串
生成用于令牌与测试的随机串。
- 在线 2FA 验证码生成
根据密钥本地生成 6 位 2FA 验证码,支持密钥或 UID|密码|2FA(第 3 段)。