MD5常见实现方式

60 0

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

MD5常见实现方式

  1. 打开本站MD5计算器,在输入框粘贴文本
  2. 选择 MD5 算法(可选 32 位或 16 位、大写或小写)
  3. 复制结果,与对方提供的值逐位比较
# Linux
echo -n "abc" | md5sum
md5sum file.iso
# macOS
md5 -s "abc"
# Windows
certutil -hashfile file.iso MD5
import hashlib
hashlib.md5("abc".encode("utf-8")).hexdigest()
# 900150983cd24fb0d6963f7d28e17f72
h = hashlib.md5()
with open("file.iso", "rb") as f:
    for chunk in iter(lambda: f.read(1 << 20), b""):
        h.update(chunk)
print(h.hexdigest())

示例

输入:<b>粗体</b>

计算结果:b0335f51ad2b1c8d2a27f2c45988b9bd

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

规则说明

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

JavaScript 示例

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

// Node.js
const crypto = require("crypto");
crypto.createHash("md5").update("abc", "utf8").digest("hex");
// 900150983cd24fb0d6963f7d28e17f72
// 浏览器的 Web Crypto 不支持 MD5,需要使用第三方库(如 spark-md5)

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

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

常见问题

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

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

【MD5 还安全吗?】已不安全,只适合校验意外损坏,不能用于签名和密码存储。

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

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

标签: MD5 数码开发

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