密码哈希函数

把任意数据压成定长「指纹」 $h=H(m)$,要求:单向(由 $h$ 难反求 $m$)、抗碰撞(难找 $m_1\neq m_2$ 使 $H(m_1)=H(m_2)$)、雪崩效应。代表:SHA-256、SHA-3。

数字签名

私钥签名、公钥验证,保证来源真实与内容完整、且不可抵赖:
$\sigma=\mathrm{Sign}{sk}\big(H(m)\big),\qquad \mathrm{Verify}{pk}(m,\sigma)\in{\text{真},\text{假}}$
通常先哈希再签(签指纹而非全文)。RSA 签名、ECDSA 是主力。

消息认证码 (MAC)

对称场景下用共享密钥的 HMAC 验证完整性与真实性。

例题

 软件发布附「SHA-256 + 数字签名」:下载后比对哈希防篡改,验签确认确实来自发布者——两者缺一不可。

应用

数字签名是 HTTPS 证书、区块链交易、代码签名、电子合同的信任基石;密码哈希用于密码存储(加盐慢哈希 bcrypt/Argon2,见本站登录实现)、文件校验与 Merkle 树。