从任意文本生成 MD5、SHA-1、SHA-256 和 SHA-512 哈希值。使用 Web Crypto API 进行 SHA 哈希——所有操作在浏览器中完成,数据不离开您的机器。
A 哈希函数 是一种数学算法,接受任意长度的输入(或 "消息"),并产生称为哈希值、摘要或校验和的固定大小输出。密码学哈希函数的关键特性包括确定性(相同输入始终产生相同输出)、高效性(哈希计算快速)、原像抗性(给定哈希值,计算上几乎不可能找到原始输入)以及碰撞抗性(极难找到产生相同哈希的两个不同输入)。这些特性使哈希函数成为计算机安全、数据完整性验证和软件工程的基础构件。
碰撞 指两个不同的输入产生相同的哈希输出。虽然对于任何哈希函数(因为输出空间有限)理论上不可避免会出现碰撞,但安全的哈希函数使得寻找碰撞在计算上几乎不可能。MD5(128 位输出)在 2004 年被破解,研究人员展示了实际的碰撞攻击,已不应再用于安全场景。SHA-1(160 位)在 2005 年理论上被破解,并在 2017 年通过 Google 的 SHAttered 攻击实际演示。SHA-2 系列(SHA-256 和 SHA-512)仍然安全,暂无已知的实际攻击。对于需要密码学安全性的新应用,推荐使用 SHA-256 或 SHA-512。MD5 和 SHA-1 仍可用于非安全用途,如校验和和哈希表。
哈希函数在软件开发和安全领域有多种用途。密码存储 通过哈希(配合加盐及 bcrypt、Argon2 等专用算法)存储密码摘要,而非明文密码。文件完整性校验 通过比较哈希校验和来检测下载过程中的文件损坏或篡改。数字签名 先对消息进行哈希,然后使用私钥加密哈希以实现身份验证。数据去重 利用哈希识别存储系统中相同的数据块。Git 版本控制 使用 SHA-1 哈希标识仓库中的每个提交、树和对象。区块链 技术使用 SHA-256 哈希将区块链在一起,每个区块包含前一个区块的哈希。