消息摘要与编码工具
MD5 / SHA 系列哈希计算,支持 HMAC 与文件校验。
隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传- MD5128 位
—
- SHA-1160 位
—
- SHA-224224 位
—
- SHA-256256 位
—
- SHA-384384 位
—
- SHA-512512 位
—
使用说明
- · 文本摘要:粘贴文本即实时算出六种摘要;结果可切换大小写,逐行复制或一键复制全部。
- · HMAC:先选密钥格式(文本 / Hex),填入密钥与消息,即可得到四种 HMAC 值,常用于接口签名验证。
- · 编码转换:选择 Hex / Base64 / URL / 大小写与方向,双栏实时联动;「交换」可把结果回填为输入并反转方向。
- · 文件摘要:拖入或点选文件,边读边算并显示进度;完成后可复制结果与官方发布的校验值逐字比对。
- · 摘要值一律以十六进制表示,默认小写;与
md5sum、sha256sum的输出一致。
隐私声明:本工具的全部计算(摘要、HMAC、编解码与文件读取)都在你的浏览器内完成,不发起任何网络请求,也不使用 Cookie 或第三方统计。你输入的文本、密钥与选择的文件不会离开本机,断开网络后依然可以正常使用。
工作原理
- 1输入文本后先按 UTF-8 编码为字节序列,中文与 emoji 均按真实字节参与运算,因此结果与终端命令一致。
- 2MD5、SHA-1、SHA-224、SHA-256 使用内置的纯 TypeScript 实现(RFC 1321 / FIPS 180-4);SHA-384、SHA-512 采用 WebCrypto 的 crypto.subtle.digest 计算,非安全上下文(非 HTTPS / localhost)下这两项会给出明确原因。
- 3HMAC 按 RFC 2104 实现:密钥长度超过分组长度(64 字节)时先做一次摘要压缩,再与 0x36、0x5c 两种填充异或后包住消息做两轮摘要;HMAC-SHA512 由 WebCrypto 完成。
- 4文件摘要使用增量摘要器:每次只读取 2MB 分块并立即喂入哈希上下文,处理完即释放,因此内存占用与文件总大小无关。
- 5编码转换复用同一套字节工具:编码方向先 UTF-8 编码再映射为 Hex / Base64 / URL 字符,解码方向反向还原字节并校验合法性(如 Base64 的填充与字符集、URL 的百分号转义)。
常见问题
MD5 还安全吗?还能用来做什么?
MD5 已被证明存在碰撞攻击,不能用于数字签名、口令存储等安全场景(口令请改用 bcrypt / Argon2)。但它计算快、兼容性极好,仍然非常适合做文件完整性校验、去重标识与缓存键,这也是本工具保留它的原因。
数据会上传到服务器吗?
不会。所有摘要、HMAC 与编解码都在你的浏览器内完成,不发起任何网络请求,断网也能正常使用,原文本、密钥与文件都不会离开你的设备。
为什么有些算法会显示「不可用」?SHA-256 会不可用吗?
SHA-384 / SHA-512 依赖浏览器 WebCrypto(crypto.subtle),只在 HTTPS 或 localhost 等安全上下文下提供;若通过 http:// 或不安全的内嵌环境打开页面,这两项就会显示不可用并给出原因。SHA-256 不可用的情况不会出现:MD5、SHA-1、SHA-224、SHA-256 与 HMAC-MD5 / SHA1 / SHA256 都由内置的纯 TypeScript 实现,不依赖该接口,任何环境下均可用。
HMAC 和普通哈希(消息摘要)有什么区别?
普通哈希只对消息做单向摘要,任何人拿到消息都能算出同一个值,因此无法证明「是谁」生成的;HMAC 把密钥与消息按 RFC 2104 一起参与运算(ipad 0x36 / opad 0x5c 两轮摘要),只有持有同一密钥的一方能算出相同结果,所以常用于接口签名、令牌与消息完整性校验。密钥不同,HMAC 结果完全不同;同一算法下 HMAC 输出长度与对应哈希一致。
大文件摘要会卡死浏览器吗?有大小限制吗?
不会。文件按 2MB 分块顺序读取并即时喂入哈希上下文,内存占用恒定,因此 1GB 甚至更大的文件也能算,只是耗时随体积线性增长;计算期间会显示进度,并让出主线程以保持界面响应。
空字符串能算摘要吗?
可以。空输入的摘要是一组固定值(例如空串的 MD5 为 d41d8cd98f00b204e9800998ecf8427e),常用于校验算法实现是否正确。清空输入框后结果区仍会显示这组固定值。