哈希摘要
哈希(摘要)是把任意长度输入压成一段固定长度的指纹:同样内容永远得到同样结果,改一个字符就面目全非,而且从指纹推不回原文。这页输入一段文字,一次算出五种常见摘要,用来核对文件是否被改动、比对内容是否一致。
适合下载东西想验证校验和、把用户输入做指纹去重、给一段配置生成短 ID、排查两个看着一样的文本字节是否真相同。输入框一改动,五种算法的结果就同步刷新。
每种算法一行:算法名、十六进制摘要、一个复制按钮。勾「大写输出」把字母转 A-F。MD5 一直可用;SHA 系列依赖浏览器的 Web Crypto,需要 HTTPS 或 localhost 这类安全上下文。
怎么用
- 输入把要算摘要的文字放进输入框(占位「输入要计算摘要的文本」);框内预置了 xmi4.com,可直接替换。
- 读五种结果下方按 MD5 / SHA-1 / SHA-256 / SHA-384 / SHA-512 各列一行,输入一动约 0.1 秒后刷新(有防抖)。
- 切换大小写勾「大写输出」让所有摘要里的字母变 A-F,方便贴进要求大写的校验场景。
- 逐行复制每行末尾的复制按钮(鼠标悬停提示「复制 该算法 结果」)单独拷走那一条。
示例
xmi4.com
MD5 15c8aa719bfc489ec48770c53b388593 · SHA-256 3cfd16bba5a8e5e780b18f2a6c7eaafdef3f7c556a36a7f0f9f7ea8380d6368b
同一串输入在任何地方算,摘要都一模一样;这就是拿它当指纹的依据。
深入一点
哈希不是加密,也不能解密
摘要单向不可逆,本页没有解回原文的功能。别指望 MD5、SHA 能还原或保密——它用来验证一致、没被改,不是加密。
同理,想把一段口令存成摘要就算安全也不对:裸哈希能被字典和彩虹表快速命中,真存口令要加盐或用专门的慢哈希。
也别拿摘要当唯一编号去反推内容——它只能证明两段完全一样,说不出这段究竟写了什么。
MD5、SHA-1 已不适合安全用途
这两者已被证实可构造碰撞,别拿来做防伪、签名或口令保护;日常校验完整性仍可用,但安全场景请选 SHA-256 及以上。
判断标准很简单:结果会不会被人刻意伪造。只是核对有没有传坏、下错,短一点的老算法无妨;一旦牵涉身份、权限或金额,就务必换强算法。
安全上下文才会出 SHA
SHA 系列走浏览器 crypto.subtle,只在 HTTPS 或 localhost 下可用;非安全上下文时这页会黄字提示「当前非安全上下文,SHA 系列不可用(仅 MD5)」,此时只有 MD5 有值。
这不是缺陷:浏览器不让担心被篡改的页面调用加密接口,本地开发和正式站点都是安全上下文,正常用不会碰到。
真要长期用就把页面挂在受信任的域名下,就不会再看到这个提示;临时以文件方式打开时只有 MD5 可用,凑合比对非安全内容也还行。
注意事项
- 计算全在浏览器本地,输入内容不上传服务器。
- 摘要按 UTF-8 字节算;带中文或 emoji 时,对方也要按同样字节口径才能对上。
- 结果是单向指纹,不能当密钥,也不能用来加密敏感信息。
- 校验口令应加盐或用专用算法,不要用这里的裸 MD5/SHA。
- 五种摘要是对同一段字节各算一次,输入一动就一起刷新,不需要逐个手动触发。
- 空输入也会算出固定摘要(各算法对应一串定长十六进制),不是报错;想知道某串是不是空,比对摘要长度就行。