27次发布

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月21日
0.0.3 2014年11月21日

#6 in 加密学

Download history 1019174/week @ 2024-05-04 1106381/week @ 2024-05-11 1092681/week @ 2024-05-18 1076827/week @ 2024-05-25 1171938/week @ 2024-06-01 1113489/week @ 2024-06-08 1111250/week @ 2024-06-15 1085901/week @ 2024-06-22 1025206/week @ 2024-06-29 1145865/week @ 2024-07-06 1138217/week @ 2024-07-13 1198311/week @ 2024-07-20 1180766/week @ 2024-07-27 1219585/week @ 2024-08-03 1247683/week @ 2024-08-10 1053178/week @ 2024-08-17

4,905,001 每月下载量
用于 5,879 个crate(574直接使用)

MIT/Apache

32KB
669

RustCrypto: SHA-1

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

SHA-1加密哈希算法的纯Rust实现。

🚨 警告:加密已损坏!🚨

SHA-1哈希函数应被视为加密已损坏,不适合在任何安全关键用途中进一步使用,因为它实际上容易受到选择前缀冲突的影响。

我们只提供此crate以实现向后兼容性。

如果可能,请使用sha1-checked crate,尽管它较慢,但它提供了检测潜在冲突以及生成替代安全哈希的能力。

示例

一次性API

use hex_literal::hex;
use sha1::{Sha1, Digest};

let result = Sha1::digest(b"hello world");
assert_eq!(result, hex!("2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"));

增量API

use hex_literal::hex;
use sha1::{Sha1, Digest};

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

assert_eq!(hash, hex!("2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"));

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

另请参阅RustCrypto/hashes的readme中的示例部分

最低支持的Rust版本

Rust 1.72 或更高。

最低支持的Rust版本可能在将来更改,但它将以次要版本号的提升来完成。

SemVer策略

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

许可证

此crate受以下之一许可

任选其一。

贡献

除非你明确声明,否则根据Apache-2.0许可证定义的,你有意提交给作品并由你包括在内的任何贡献,将按照上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~310–530KB
~12K SLoC