22次发布

0.11.0-pre.42024年7月27日
0.11.0-pre.22024年1月19日
0.10.4 2022年9月2日
0.10.1 2022年2月17日
0.3.0 2016年11月17日

#2335 in 加密学

Download history 23538/week @ 2024-05-04 19025/week @ 2024-05-11 20872/week @ 2024-05-18 20675/week @ 2024-05-25 18979/week @ 2024-06-01 19235/week @ 2024-06-08 19747/week @ 2024-06-15 16974/week @ 2024-06-22 15689/week @ 2024-06-29 18732/week @ 2024-07-06 17340/week @ 2024-07-13 19663/week @ 2024-07-20 26380/week @ 2024-07-27 23825/week @ 2024-08-03 22927/week @ 2024-08-10 22923/week @ 2024-08-17

100,123 monthly downloads
用于 27 crates (19 directly)

MIT/Apache

63KB
2.5K SLoC

RustCrypto: Whirlpool

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

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

这是由NESSIE(新欧洲签名、完整性和加密方案;一个欧洲研究项目)推荐的算法。

Whirlpool使用的常数两次更改(2001年和2003年)——这个crate只实现了最新的标准。两个较老的Whirlpool实现(有时称为Whirlpool-0(2001年之前)和Whirlpool-T(2003年之前))实际上使用得不多(两者都从未被NESSIE推荐)。

有关详细信息,请参阅此 页面

示例

use whirlpool::{Whirlpool, Digest};
use hex_literal::hex;

let mut hasher = Whirlpool::new();
hasher.update(b"Hello Whirlpool");
let hash = hasher.finalize();

assert_eq!(hash, hex!(
    "8eaccdc136903c458ea0b1376be2a5fc9dc5b8ce8892a3b4f43366e2610c206c"
    "a373816495e63db0fff2ff25f75aa7162f332c9f518c3036456502a8414d300a"
));

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

还可以参见RustCrypto/hashes的readme中的示例部分

最低支持的Rust版本

Rust 1.71 或更高。

最低支持的Rust版本可能在将来更改,但将以较小的版本号提升的方式完成。

SemVer策略

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

许可证

该crate根据以下任一许可证授权

任选其一。

贡献

除非您明确声明,否则您提交的任何有意包含在作品中的贡献,根据Apache-2.0许可证定义,应如上所述双许可,不附加任何其他条款或条件。

依赖项

~295–460KB
~11K SLoC