字符串哈希一键批量计算・比较|MD5・SHA-1・SHA-256・SHA-512・SHA-3・BCrypt・Argon2id

只需输入一个字符串,即可同时计算 MD5・SHA-1・SHA-256・SHA-512・SHA-3・BCrypt・Argon2id 的哈希值并并排比较。所有计算均在浏览器内完成,输入内容不会发送到服务器。

什么是一键批量哈希计算

本工具只需输入一个字符串,即可同时显示 MD5・SHA-1・SHA-256・SHA-512・SHA-3・BCrypt・Argon2id 共 7 种哈希算法的计算结果,并排展示便于比较。无需在不同算法页面之间来回切换、重复输入同一字符串,即可一眼看出各算法输出长度和格式上的差异。

所有计算均在浏览器内的 JavaScript/WebAssembly 中完成,输入的字符串和计算出的哈希值都不会发送到服务器。BCrypt 和 Argon2id 每次都会使用随机盐值,因此每次运行结果都不同,这是符合规范的正确行为。

批量计算哈希的使用方法

  1. 输入字符串 在输入框中输入需要计算哈希的字符串。
  2. 点击"一键计算" 点击按钮后会同时执行 7 种算法的计算。
  3. 对比计算结果 在表格中查看各算法的输出,比较长度和格式的差异。
  4. 复制所需的哈希值 点击每行的复制按钮即可将哈希值保存到剪贴板。

用好本工具的小技巧

  • 无需逐个切换算法页面,即可一次性查看同一输入对应的 7 种哈希值。
  • MD5・SHA-1 计算速度快但抗碰撞能力弱,目前不推荐用于密码存储,请仅用于文件篡改检测等轻量场景。
  • 在密码存储场景中,目前推荐使用可调节计算成本、并附带盐值的 BCrypt 或 Argon2id。
  • 点击每个哈希值右侧的按钮即可一键复制,方便在多种算法下进行功能验证或写入文档。

使用场景

核对旧系统的哈希值

想确认旧系统用 MD5 或 SHA-1 保存的值,与新实现重新计算出的值是否一致时可以使用。

为新项目选择算法

在根据安全需求决定采用哪种算法时,可以一边对比实际输出一边进行判断。

一次性准备多种校验和格式

当分发文件需要提供多种哈希格式时,只需输入一次即可全部获取。

用作密码学学习和培训素材

通过对比同一输入在各算法下生成的不同结果,直观理解哈希函数之间的差异。

术语集

盐值(Salt)
在哈希计算前添加到输入中的随机值。它使相同的输入每次都产生不同的哈希值,从而防御彩虹表攻击。
抗碰撞性
指很难找到两个不同的输入产生相同哈希值的性质。MD5・SHA-1 已被证实存在可实际利用的碰撞,因此被认为抗碰撞性较低。
密钥拉伸
刻意重复或减慢哈希计算过程,以增加暴力破解难度的方法,是 BCrypt 和 Argon2 的核心机制。
内存困难性
计算过程中需要占用一定量内存的特性,可提高对 GPU 等专用硬件并行暴力破解攻击的抵抗力,是 Argon2 的核心特点。
彩虹表
预先计算大量明文与哈希值对应关系的表,用于快速从哈希值反查出原始字符串的攻击手法。

常见问题

不会。所有计算均在浏览器内的 JavaScript/WebAssembly 中完成,输入字符串及计算出的哈希值都不会被发送到服务器或进行保存。

这是因为这两种算法每次计算时都会生成一个新的随机盐值并嵌入到哈希结果中,因此即使输入相同,每次的输出也不同。这是符合规范的正确行为,也是防御彩虹表攻击的重要机制。

目前首选推荐Argon2id,其次是广泛使用的BCrypt。MD5・SHA-1・SHA-256・SHA-512・SHA-3 计算速度过快,不适合单独用于密码存储。

在密码存储、数字签名等安全性要求较高的场景中不建议使用。但在文件完整性校验(检测非人为的意外损坏)等不涉及恶意攻击的轻量场景中,目前仍在使用。

如需调整 BCrypt 的成本系数,或 Argon2 的内存、迭代次数、并行度,请分别使用专用的BCrypt 哈希・Argon2 哈希计算工具。
工具君

闲话 ― 为什么哈希函数需要按用途区分使用

MD5・SHA-1・SHA-256・SHA-512・SHA-3 虽然同属"密码学哈希函数"这一类别,但由于设计的年代和目的不同,其安全水平其实存在巨大差异。MD5(1992年)和 SHA-1(1995年)都已被证实存在可实际利用的碰撞攻击(即人为构造出两个不同输入却产生相同哈希值),因此在数字证书和数字签名领域已被禁止使用;而 SHA-256・SHA-512・SHA-3 目前仍被认为是安全的,广泛应用于区块链和 TLS 证书等对安全性要求较高的场景。

然而,即便是 SHA-256 这样"安全"的哈希函数,也并不适合用于密码存储。这是因为这类函数被刻意设计得计算速度极快,一旦遭遇暴力破解或预先计算好的彩虹表攻击,攻击者便能在短时间内尝试海量密码组合。相比之下,BCrypt 和 Argon2 则反其道而行之,被刻意设计得"计算缓慢",其成本参数(BCrypt 的轮数、Argon2 的内存与迭代次数)还可以随着硬件性能的提升而持续调高,这与前者追求速度的设计目标恰恰相反。

在这两者之中,Argon2 是 2015 年密码哈希竞赛(Password Hashing Competition)的冠军算法,其特点是具备可指定计算所需内存量的"内存困难性"。GPU、ASIC 等专为并行计算优化的硬件虽然擅长高速运算,但内存容量有限,因此大量消耗内存的 Argon2 对专用硬件发起的暴力破解攻击的抵抗力被认为优于 BCrypt,这也是 OWASP 将其列为首选推荐算法的原因。