关于此工具
加密哈希函数会以确定性的方式将任意大小的输入映射为固定长度的摘要:相同的字节始终产生相同的哈希,而一个字符的改动会级联为完全不同的输出。本工具并排计算五种常见摘要——MD5(128 位)、SHA-1(160 位),以及 SHA-2 系列的 SHA-256、SHA-384 和 SHA-512。SHA 函数通过浏览器原生的 Web Crypto API 运行;而 Web Crypto 刻意省略的 MD5,则按照 RFC 1321 用 JavaScript 实现。
用它来对照已发布的校验和验证下载文件、确认两个文件逐字节相同、生成缓存键或内容寻址标识符、在存储之前对载荷取指纹,或核对你后端生成的哈希是否与客户端看到的一致。切换到 File 模式,将任意文件拖入即可对其哈希——字节通过 ArrayBuffer 在本地读取,绝不会上传。
MD5 和 SHA-1 在安全用途上已被攻破——碰撞在实践中可行——因此只应将它们用于校验和与完整性检查,绝不用于密码或签名;这些场景请选用 SHA-256 或更强的算法。
常见问题
MD5、SHA-1 和 SHA-256 有什么区别?
它们是产生不同长度摘要的不同哈希算法:MD5 为 128 位,SHA-1 为 160 位,SHA-256 为 256 位。MD5 和 SHA-1 被认为在密码学上已被攻破,因为可以人为构造碰撞,而 SHA-256(属于 SHA-2 系列)仍被视为安全。
哈希和加密是一回事吗?
不是。哈希是一种单向函数——你无法将摘要逆向还原为原始输入——而加密在拥有正确密钥时是可逆的。哈希用于完整性验证和指纹识别,而不是用于保持数据机密。
我的文本和文件会被上传到服务器吗?
不会。所有哈希计算完全在你的浏览器中进行:SHA 摘要使用原生的 Web Crypto API,MD5 在 JavaScript 中运行,文件通过 ArrayBuffer 在本地读取。任何内容都不会通过网络发送。