跳到主内容
UniKit

文本摘要 Hash

用浏览器本地同步算法计算文本的 MD5、SHA-1、SHA-256、SHA-512 摘要,同时给出 hex 与 Base64 两种表示,内容不会离开浏览器。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

字节数: 0
摘要结果
Hex
Base64

摘要算法是单向的,无法从结果还原原文;同样的输入永远得到同样的结果。

这个工具能做什么

  • 校验下载文件是否完整:拿到官方公布的 MD5/SHA-256 值,粘进文本算出摘要逐位对比,不用装命令行工具。
  • 写构建脚本或缓存键时先试算:同一段文本的摘要值可以反复复现,适合做文件名、缓存目录名或去重键。
  • 判断两段内容是否完全一致:中文和 Emoji 容易混入全角空格或不可见字符,摘要相同就说明字节完全相同。
  • 对照不同算法:同一个输入同时给出 MD5、SHA-1、SHA-256、SHA-512 的 hex 与 Base64,以及输入字节数。

示例

输入

Hello, UniKit! 你好,工具站!

输出

SHA-256 hex:4adb88b65c7e4dbb24805d5c979e28c37a58103bc0eabba8e926361082db35cd
SHA-256 Base64:StuItlx+TbskgF1cl54ow3pYEDvA6ruo6SY2EILbNc0=
字节数:42

先按 UTF-8 编码成字节再算摘要,所以中文一个字符算 3 字节;ASCII 的 "abc" 的 MD5 是 900150983cd24fb0d6963f7d28e17f72,SHA-256 是 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad。

常见问题

MD5 和 SHA-1 还能用来校验文件吗?

可以用于「防传输损坏」,但不适合防篡改:MD5 与 SHA-1 都已被证明存在碰撞,攻击者能构造出摘要相同但内容不同的文件。安全性要求高时请用 SHA-256 或 SHA-512。

为什么中文的字节数和字符数不一样?

摘要是对字节计算的,文本会先按 UTF-8 编码:一个汉字通常 3 字节,Emoji 可能 4 字节,ASCII 字符 1 字节。所以「你好」的字节数是 6 而不是 2,页面上的字节数就是实际参与计算的字节数。

hex 和 Base64 有什么区别,该用哪个?

两者表示的是同一串字节,只是写法不同:hex 用 0-9a-f,一个字节两个字符;Base64 更紧凑,一个字节约 1.33 个字符。跨系统比对时注意大小写(勾选「hex 用大写字母」可切换),Base64 的 = 填充不要随手删。

摘要能还原成原文吗?

不能。摘要算法是单向的,而且理论上无限输入映射到有限输出,必然存在碰撞。所以摘要只能用来验证「内容有没有变」,不能用来还原或加密内容。

计算过程会联网吗?

不会。四种算法都是纯 JavaScript 的同步实现,全部在浏览器本地计算,页面不发送任何请求,输入的敏感文本不会上传。

关键词:hashmd5sha1sha256sha512摘要哈希校验digestchecksumbase64

同类工具