开发接口签名、核对数据、调试第三方 SDK 时,经常需要快速算出一段文字的 MD5 或 SHA 值。本站提供三个相关工具:
计算在浏览器中完成,输入内容不会发送到服务器。
MD5:输入内容 → 点击“加密” → 得到 32 位小写十六进制结果。需要大写时点击“转换为大写”。
SHA:输入内容 → 点击 SHA1 / SHA256 / SHA512 → 得到对应结果。
HmacSHA:输入内容和 Key → 点击 Hmac-SHA1 / Hmac-SHA256 / Hmac-SHA512。
所有工具都支持一键“复制到剪切板”。文本按 UTF-8 编码参与计算,中文与其他语言实现(如 Java、Python、Node.js 按 UTF-8 处理时)的结果一致。
拿到结果后,先看长度就能判断用的是哪种算法。有些系统使用的“16 位 MD5”,是 32 位结果中间的第 9~24 个字符。
工具界面上写着“加密”,但严格来说,MD5、SHA 属于哈希(摘要)算法:
网上的“MD5 解密”,本质是查预先计算好的结果库,只对常见、简单的字符串有效。如果需要可以还原的加密,请使用 AES 加密解密。
HMAC 是“带密钥的哈希”。只有知道 Key 的双方才能算出相同的结果,因此常用于:
调试签名时,可以用本工具算出预期结果,与程序输出对比,快速定位是参数拼接问题还是密钥问题。
MD5 和 SHA1 已被证明存在碰撞问题,不应再用于安全相关场景。
为什么我算出来的结果和别人不一样?
常见原因:多了空格或换行;大小写不同;字符编码不同(UTF-8 与 GBK);HMAC 的 Key 不一致。
大写和小写结果有区别吗?
只是十六进制的显示方式不同,值相同。但签名校验通常区分大小写,以对方文档为准。