MD5的数据格式

77 0

MD5 是一种哈希(散列)算法,把任意长度的数据计算成固定 128 位(16 字节)的摘要,通常写成 32 位十六进制字符串。下面重点说明输出与书写约定。

MD5的数据格式

函数通常返回 16 字节的原始摘要,需要转成十六进制(32 字符)或 Base64 再显示。Python hexdigest() 直接返回十六进制字符串。

常见参数:输出格式(十六进制小写/大写、Base64)、输入字符集、16 位 MD5(取 32 位结果的第 9–24 位)、文件分块读取大小。

示例

输入:abc

计算结果:900150983cd24fb0d6963f7d28e17f72

说明:对 UTF-8 字节计算 MD5。

规则说明

  • 输入是字节:同一段中文按 UTF-8 和 GBK 计算,结果不同
  • 输出通常用小写十六进制表示,大小写不影响比较
  • 也可以用 Base64 表示(16 字节编码为 24 个字符)
  • 比较两个摘要时应使用常量时间比较函数,防止时序攻击

Java 示例

下面是 Java 中处理MD5的常用写法:

MessageDigest md = MessageDigest.getInstance("MD5");
byte[] d = md.digest("abc".getBytes(StandardCharsets.UTF_8));
String hex = String.format("%032x", new BigInteger(1, d));
// Java 17+: HexFormat.of().formatHex(d)

运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。

本站的MD5计算器工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。

常见问题

【MD5 能解密吗?】不能。MD5 是单向哈希,没有密钥也没有逆运算;所谓解密是查已知明文的对照表,只对简单字符串有效。

【MD5 是多少位?】128 位,即 16 字节,写成十六进制是 32 个字符。

【同一个文本为什么算出的 MD5 不一样?】通常是输入字节不同:字符集不同、末尾多了换行或空格、全角半角不同。

文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: MD5 数码开发

抱歉,评论功能暂时关闭!