23个版本

0.11.0-pre.42024年7月26日
0.11.0-pre.32024年2月1日
0.11.0-pre.22024年1月17日
0.10.6 2023年9月22日
0.5.2 2017年6月13日

#2041 in 加密学

Download history 724560/week @ 2024-05-04 782173/week @ 2024-05-11 786747/week @ 2024-05-18 734642/week @ 2024-05-25 891294/week @ 2024-06-01 876469/week @ 2024-06-08 841573/week @ 2024-06-15 892266/week @ 2024-06-22 818668/week @ 2024-06-29 875928/week @ 2024-07-06 830675/week @ 2024-07-13 892951/week @ 2024-07-20 891020/week @ 2024-07-27 875265/week @ 2024-08-03 900828/week @ 2024-08-10 771788/week @ 2024-08-17

3,599,755 monthly downloads
3,029 个crate中使用 (372 个直接使用)

MIT/Apache

23KB
432 代码行

RustCrypto: MD5

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

MD5加密哈希算法的纯Rust实现。

⚠️ 安全警告

此crate提供用于与强制使用MD5的协议和系统进行旧版互操作的目的。

但是,MD5是 加密上已破损且不适合进一步使用

针对MD5的碰撞攻击既实用又简单,并且已经发现了针对MD5的预映像抵抗的理论攻击 [1]

RFC 6151建议不要设计基于MD5的新IETF协议,包括HMAC-MD5。

示例

use md5::{Md5, Digest};
use hex_literal::hex;

let mut hasher = Md5::new();
hasher.update(b"hello world");
let hash = hasher.finalize();

assert_eq!(hash, hex!("5eb63bbbe01eeed093cb22bb8f5acdc3"));

// Hex-encode hash using https://docs.rs/base16ct
let hex_hash = base16ct::lower::encode_string(&hash);
assert_eq!(hex_hash, "5eb63bbbe01eeed093cb22bb8f5acdc3");

还可以查看RustCrypto/hashes的readme中的示例部分

最低支持的Rust版本

Rust 1.72 或更高。

最低支持的Rust版本可能会在未来更改,但将通过小版本号升级来完成。

SemVer策略

  • 此库的所有默认功能都受SemVer保护
  • MSRV被视为不受SemVer约束,如上所述

许可证

此crate的许可证为以下之一

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,任何有意提交以包含在您的工作中的贡献,都应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~295–510KB
~12K SLoC