
用纯 Rust 编写的密码学哈希函数集合。
所有算法均位于独立的 crate 中,并使用 digest crate 的 trait 实现。
digest 及各个哈希实现 crate 的文档中提供了使用示例。
此外,所有 crate 均不依赖标准库(即支持 no_std),通过禁用默认 crate 特性,
便可轻松用于裸机或 WebAssembly 编程。
如需可扩展输出函数(XOF)的集合,请参阅 RustCrypto/XOFs 仓库。
注意: 对于新应用程序,或者当与其他现有标准的兼容性不是主要考虑因素时,我们强烈建议使用 BLAKE3、SHA-2 或 SHA-3。
注意:blake3 crate 实现了本仓库中其他哈希所使用的 digest trait,但由 BLAKE3 团队维护。
以下描述了与每个哈希函数(即算法,而非具体实现)相关的安全级别评级:
| 符号 | 说明 |
|---|---|
| 💚 | 没有已知的成功攻击 |
| 💛 | 理论破解:安全性低于所声称的水平 |
| 💔 | 攻击已在实践中得到证明:尽可能避免使用 |
更多信息请参阅维基百科上的安全性页面。
只要可能,crate 都会以与 crate 文件夹相同的名称发布。
md5 的所有者拒绝参与本项目。
该 crate 未实现 digest trait,因此无法与 RustCrypto 生态系统互操作。
这就是为什么我们将 MD5 实现发布为 md-5,并用 ❗ 标记。
请注意,库本身命名为 md5,即在 use 语句中应使用 md5,而不是 md_5。
本仓库中的所有 crate 均采用以下任一许可证:
由您自行选择。
除非您明确声明,否则,根据 Apache-2.0 许可证中的定义,您为纳入本作品而有意提交的任何贡献,均应按上述方式采用双重许可,不附加任何额外条款或条件。
| 算法 | Crate | Crates.io | 文档 | MSRV | 安全性 |
|---|
| Ascon-Hash256 | ascon‑hash256 | 1.85 | 💚 | ||
| bash-hash | bash‑hash | 1.85 | 💚 | ||
| BelT hash | belt‑hash | 1.85 | 💚 | ||
| BLAKE2 | blake2 | 1.85 | 💚 | ||
| FSB | fsb | 1.85 | 💚 | ||
| GOST R 34.11-94 | gost94 | 1.85 | 💛 | ||
| Grøstl (Groestl) | groestl | 1.85 | 💚 | ||
| JH | jh | 1.85 | 💚 | ||
| Kupyna | kupyna | 1.85 | 💚 | ||
| MD2 | md2 | 1.85 | 💔 | ||
| MD4 | md4 | 1.85 | 💔 | ||
| MD5 | md5 ❗ | 1.85 | 💔 | ||
| RIPEMD | ripemd | 1.85 | 💚 | ||
| SHA-1 | sha1 | 1.85 | 💔 | ||
| SHA-1 Checked | sha1-checked | 1.85 | 💛 | ||
| SHA-2 | sha2 | 1.85 | 💚 | ||
| SHA-3 (Keccak) | sha3 | 1.85 | 💚 | ||
| SHABAL | shabal | 1.85 | 💚 | ||
| Skein | skein | 1.85 | 💚 | ||
| SM3 (OSCCA GM/T 0004-2012) | sm3 | 1.85 | 💚 | ||
| Streebog (GOST R 34.11-2012) | streebog | 1.85 | 💛 | ||
| Tiger | tiger | 1.85 | 💛 | ||
| Whirlpool | whirlpool | 1.85 | 💚 |