Hash 生成器指南:MD5/SHA 用途边界与文件校验

更新 2026-08-08 约 13 分钟 开发工具 How-to

下载系统镜像后要和官网校验码比对、发布安装包需要附带摘要、或联调「签名字符串」与文档不一致时,你需要的是 哈希(散列),不是编码。本指南讲清不可逆与碰撞、MD5/SHA 还能不能用、在 WebUtils 上如何对文本/文件出码,并明确:密码存储不要依赖「裸 MD5/SHA」。

立即使用相关工具 Hash 生成器 — 本地 MD5/SHA1/SHA256/SHA512,支持文本与文件
打开工具 →

核心一句话

哈希是固定长度的指纹:改一丁点输入,摘要就应大变;它不能解密回原文。

用指纹做完整性校验、去重、内容寻址很合适;把哈希当成加密或唯一密码方案会出事故。主工具:Hash 生成器

哈希是什么、不是什么

哈希算法把任意长度输入映射为固定长度摘要:

算法 摘要长度(常见十六进制字符数) 现状(工程直觉)
MD5 128 bit(32 位 hex) 快;碰撞已实用,勿用于安全签名/密码
SHA-1 160 bit(40 位 hex) 碰撞攻击已示范;淘汰安全用途
SHA-256 256 bit(64 位 hex) 当前常见默认:文件校验、许多签名体系
SHA-512 512 bit(128 位 hex) 更高输出长度;视协议与性能选择

不是加密: 没有「密钥解密」过程。能「破解」的是弱口令的字典/暴力与部分算法的碰撞构造,而不是数学上的逆运算公式。

不是 Base64: Base64 可逆、变长(约 +33%);哈希不可逆、定长。运输二进制用 Base64;比对是否同一内容用哈希。

不是 MAC/签名本身: 单纯 MD5(原文) 任何人都能算。要防篡改且防伪造,需要 HMAC、数字签名或带密钥的方案;本工具给出的是 无密钥摘要,便于校验与调试。

雪崩与 equalf 文件

「只改一个逗号,SHA-256 完全不同」是预期行为。若两个文件哈希相同,在所用算法下可认为内容相同(MD5/SHA-1 在对抗场景要担心碰撞;日常镜像校验仍有人用 MD5,但 发布软件更推荐 SHA-256)。

算法怎么选

你的目标 建议 避免
校验下载是否完整/未被改(非对抗极强) SHA-256 与官网一致 仅口头「文件大小一样」
老接口文档写死 MD5 签名串 按文档用 MD5 仅兼容 新设计继续扩散 MD5
内容去重、缓存 key SHA-256 足够 把哈希当保密 transfrom
用户密码存储 专用密码哈希(Argon2/bcrypt/scrypt 等 + salt) 裸 MD5/SHA1/SHA256(password)
证明「我持有密钥且消息未被改」 HMAC/签名库 公开算法无密钥的裸哈希

页面 SEO 文案有时把哈希称作「文本加密」——那是检索用语残留;工程上请坚持:摘要 ≠ 加密。

在 WebUtils 上怎么做

工具页:Hash 生成器。依赖浏览器内计算(页面引入 CryptoJS);处理本地完成。

文本模式

  1. 打开 /tools/dev/hash-generator
  2. 左侧确认选中 文本模式(默认)。
  3. 在文本框输入或粘贴内容;oninput 会触发 calculate,右侧同时给出 MD5 / SHA-1 / SHA-256 / SHA-512
  4. 编码 下拉可选 UTF-8 / ASCII(按你要对齐的环境;中文与现代 API 几乎总是 UTF-8)。
  5. 格式 可选小写 / 大写,以匹配文档里的大小写(有的校验区分大小写字符串比较)。
  6. 点各算法旁的 复制 带走;清空输入 重置。

注意:首尾空格、换行符、Windows 的 \r\n 都会改变哈希。与后端比对时先确认「是否 trim、是否含换行」。

文件模式

  1. 切换 文件模式
  2. 点击拖放区或拖入文件;显示文件名与大小。
  3. 工具读入文件后同样计算四类摘要(大文件在浏览器内存与耗时上有现实限制,极特大镜像更适合 sha256sum 等本地 CLI)。
  4. 与官网校验码逐字符比对;只差大小写就改 格式 下拉。

能力边界

  • 有: 四算法并行、文本/文件、大小写、UTF-8/ASCII 选项、复制。
  • 无: 密码加盐慢哈希、HMAC 密钥框、流式超大文件优化(视浏览器而定)。
  • 不宣称: 「用本页存密码就安全」。

常见错误与对照

现象 常见原因 处理
与官网差一位都对不上 下完不完整;或比错算法 重新下载;确认是 MD5 还是 SHA-256
文本哈希与后端不同 字符集、换行、是否 JSON 紧凑、隐藏空格 统一 UTF-8;用十六进制编辑器或长度先比
只有大小写不同 比较时大小写敏感 用工具 格式 切换后复制
MD5 相同但文件「看起来」不同 极少见碰撞或看错文件 安全场景改 SHA-256;确认路径
以为能「解密」哈希 概念错误 只能暴力/字典猜输入,且仅对弱输入有效
密码库泄露仍被撞库 裸哈希无盐、算法太快 迁移到慢哈希 + 唯一盐;本工具不负责存储方案
文件模式选了却仍像在算旧文本 未切换模式或未选中文件 确认 文件模式 与文件名展示
ASCII 选项下中文异常 非 ASCII 被错误处理 改回 UTF-8

联调签名串时的顺序

许多支付/开放平台要求:参数排序 → 拼接 → 可能加 key → MD5/SHA → 变大写。本工具只做最后「对某段文本出摘要」。拼接规则错了,摘要永远对不齐——先固定「进入哈希的那一行字符串」,再贴进文本框。

真实工作场景

场景 A:校验 ISO / 安装包

官网写 SHA256: abcd...。下载后用 文件模式 拖入安装包,复制 SHA-256 对比。不一致则停止安装,优先怀疑下载损坏或镜像源被替换。把算法名与摘要写进运维台账。

场景 B:Release 附校验和

发布 zip 前在 文件模式 算出 SHA-256,写在 GitHub Release 说明。用户侧同样用本工具或 CLI 复核。MD5 可作辅助,但不要作为唯一安全声明。

场景 C:开放平台签名对不上

文档给了示例字符串与期望 MD5。把示例原文(注意文档是否用了不可见空格)贴进 文本模式,看 MD5 是否与文档一致。一致说明工具与算法理解无误,问题在参数排序或 key 拼接;不一致先查原文。

场景 D:两份「应该一样」的导出文件

业务说 CSV 相同但用户坚持不同。分别拖进文件模式比 SHA-256:相同则内容一致(争的是打开方式/Excel 显示);不同再做 Diff。比打开 Excel 肉眼扫更快。

场景 E:误区排查——「我们用 SHA-256 存密码」

审计发现 sha256(password) 无盐。说明:桌面级 GPU 可高速穷举;加盐也可被逐用户攻。应立项迁移;本工具仅用于证明「相同明文相同摘要」的风险演示(用测试口令)。新口令可用 密码生成器 提高熵,但仍须服务端正确哈希。

场景 F:与 Base64 流水线协作

有的接口先哈希再 Base64 传输二进制摘要。本工具输出 hex;若对端要 raw 字节的 Base64,需在程序里转,或明确文档。不要假设「hex 再 Base64」与「raw Base64」相同。

密码与安全提醒

  • 不要 用本页的 MD5/SHA 作为密码存储方案。
  • 密码应:随机盐 + 慢哈希(Argon2id/bcrypt/scrypt 等)+ 参数随硬件升级。
  • 传输仍走 HTTPS;哈希不替代信道安全。
  • 粘贴真实用户密码到任何网页工具都不推荐;演示用假数据。
  • 文件校验通过 ≠ 软件无毒,只说明与所给摘要一致;摘要来源本身要可信(官网 HTTPS、签名发布)。
  • 公共电脑用完清空文本框。

实践清单

  • 对外发布优先给 SHA-256,并写明算法名。
  • 比对前统一小写或大写,避免假失败。
  • 文本签名先冻结「原文」,再哈希。
  • MD5 仅兼容遗留,新安全设计绕开。
  • 密码路径单独评审,不与文件校验混为一谈。
  • 大文件校验失败时先查下载完整性再查工具。

常见问题

哈希能解密吗?

不能按加密意义解密。若输入空间很小(如 6 位数字密码),攻击者可暴力枚举使摘要匹配,那是猜输入,不是逆运算。

为什么 MD5 还在大量系统里?

历史与性能。文件完整性「防损坏」场景仍可见;防恶意碰撞与密码存储已不适用。新系统不要因为「到处都有」就继续选它做安全关键。

同一文件在不同电脑哈希不同?

通常不是算法平台差异(标准摘要应一致),而是文件其实不同:换行、下载截断、多下了另一语言包。用文件大小与两次计算交叉验证。

文本模式和文件模式对「同一内容」一致吗?

若文件字节与文本框按所选编码得到的字节完全一致,则一致。编辑器自动改换行或加 BOM 会导致不同。以文件字节为准做发行校验。

需要 HMAC 怎么办?

本工具不提供密钥输入。用语言自带 crypto 或专门 HMAC 工具;先保证消息原文与密钥管理正确。

在线计算安全吗?

该页在本地算。极敏感密钥材料仍建议离线 CLI;也不要把真实密码贴进文本框做「试验」。

继续浏览

用短文本看四算法长度差异,再拖一个小文件与文本模式对照「换行是否混入」,即可避免最常见的对不上。