5个版本
使用旧的Rust 2015
0.8.5 | 2020年4月27日 |
---|---|
0.8.4 | 2020年4月11日 |
0.8.3 | 2020年3月17日 |
0.8.2 | 2020年3月17日 |
0.8.1 | 2020年2月19日 |
#2496 in 加密学
56KB
1K SLoC
Sha2Ni
在Rust中实现的SHA-2哈希算法,旨在提高性能。从Sha2分支而来。
许可证
Apache 2.0和MIT条款下双许可
- Apache License,版本2.0,(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT或http://opensource.org/licenses/MIT)
lib.rs
:
SHA-2加密哈希算法的实现。
SHA-2标准中指定了6种标准算法
Sha224
,它是32位的Sha256
算法,结果截断到224位。Sha256
,它是32位的Sha256
算法。Sha384
,它是64位的Sha512
算法,结果截断到384位。Sha512
,它是64位的Sha512
算法。Sha512Trunc224
,它是64位的Sha512
算法,结果截断到224位。Sha512Trunc256
,它是64位的Sha512
算法,结果截断到256位。
从算法角度来看,只有2个核心算法:Sha256
和Sha512
。所有其他算法都是这些算法的不同初始哈希值的应用,并且截断到不同的摘要位长度。
用法
use sha2ni::{Sha256, Sha512, Digest};
// create a Sha256 object
let mut hasher = Sha256::new();
// write input message
hasher.input(b"hello world");
// read hash digest and consume hasher
let result = hasher.result();
assert_eq!(result[..], hex!("
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
")[..]);
// same for Sha512
let mut hasher = Sha512::new();
hasher.input(b"hello world");
let result = hasher.result();
assert_eq!(result[..], hex!("
309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f
989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
")[..]);
另请参阅RustCrypto/hashes的readme。
依赖项
~1.5MB
~29K SLoC