MD5 与 SHA-256:长度、兼容性与信任边界

比较两种摘要的实际用途,理解为什么校验匹配不等于文件安全或发布者可信。

先遵循协议,不是先挑最长结果

对方给的是 MD5 参考值,就计算 MD5,不能拿 SHA-256 与它比较。如果自己设计新的通用指纹流程,SHA-256 通常比 MD5 更合适,但普通摘要仍然不是身份认证机制。算法名称必须跟着结果一起保留。

对比项目MD5SHA-256
摘要长度128 位256 位
完整十六进制32 个字符64 个字符
普通摘要包含密钥吗不包含不包含
能否作为可逆加密使用不能不能

一致究竟说明什么

两个相同的计算结果,说明在当前输入和计算规则下数值一致,不能说明是谁提供了文件。如果文件和参考摘要都来自同一条已被控制的渠道,攻击者可以把二者一起替换。需要发布者真实性时,应使用可信渠道及对应的数字签名验证流程。

MD5 的碰撞弱点在对手有意构造不同内容时尤其重要。“平时检查复制文件够用”不是把 MD5 引入新签名格式的理由。不过,为历史接口复现其既定 MD5,仍然可以是明确的兼容性需求。

先比较相同字节

abc、abc 加换行、带 UTF-8 字节顺序标记的文件,是三种不同输入。压缩包的解压目录,也不是压缩包原始字节。重命名通常不影响摘要,重新构建或重新压缩却可能改变元数据和结果。

首页单条文本结果同时显示 MD5、SHA-256 和 SHA-512,标签用于区分算法,而应按标签选择需要核对的结果。核对文件时请选择发布者指定算法,并比较完整值,避免只看前几个字符。

消息认证与密码是不同任务

共享密钥认证应使用 HMAC 等定义明确的构造,不是临时把密钥与消息拼接。密码存储需要专用的密码哈希设计与恰当参数,不是把 MD5 换成长一些的快速摘要就算完成。校验工具也不是杀毒软件、签名验证器或恢复服务。

交付可用的核对信息

记录算法、完整结果和文件版本;可信参考值应与尚未验证的文件分开管理。本地导出可以保留标识和计算值,不默认包含私密原文或密钥。发生不匹配时,先排查参考来源及文件版本,再决定是否重新下载或联系发布者。

相关工具与指南

RFC 6151

常见问题

SHA-256 结果可以和 MD5 参考值比较吗?

不可以。MD5 是 32 个十六进制字符,SHA-256 是 64 个。应使用参考值指定的算法重新计算,不能通过截断或补齐把它们互相转换。

改用 SHA-256 就能验证发布者身份吗?

不能。普通摘要没有密钥或数字签名。应从可信渠道取得参考值,需要验证来源时遵循发布者的签名验证流程。

其他哈希与校验工具