5个版本
0.3.2 | 2024年6月19日 |
---|---|
0.3.1 | 2023年12月21日 |
0.2.3 | 2023年12月20日 |
0.1.0 |
|
在加密类别中排名第831
每月下载量585次
在2个crate中使用(通过sqlite-hashes)
13KB
228 行
noncrypto-digests
为fnv和xxhash等非加密哈希函数实现digest::Digest特质。这允许用户以多态方式使用所有加密和非加密哈希函数。
使用方法
use digest::Digest;
use hex::ToHex;
use noncrypto_digests::{Fnv, Xxh3_64, Xxh3_128, Xxh32, Xxh64};
/// This function takes any Digest type, and returns a hex-encoded string.
pub fn hash<T: Digest>(data: impl AsRef<[u8]>) -> String {
// Note that some hashers provide seed value set to 0 by default.
// Use `...::from_hasher(hasher)` function to instantiate them.
let mut hasher = T::new();
hasher.update(data);
hasher.finalize().to_vec().encode_hex_upper()
}
assert_eq!(hash::<Fnv>("password"), "4B1A493507B3A318");
assert_eq!(hash::<Xxh3_64>("password"), "336576D7E0E06F9A");
assert_eq!(hash::<Xxh3_128>("password"), "9CFA9055952177DA0B120BE86072A8F0");
assert_eq!(hash::<Xxh32>("password"), "106C6CED");
assert_eq!(hash::<Xxh64>("password"), "90007DAF3980EF1F");
开发
- 使用just(
make
的现代替代品)进行开发更为简便。使用cargo install just
进行安装。 - 要获取可用命令列表,运行
just
。 - 要运行测试,使用
just test
。 - 在执行
git push
时,它将运行一些验证,包括cargo fmt
、cargo clippy
和cargo test
。使用git push --no-verify
跳过这些检查。
许可
根据以下任一许可授权:
- Apache License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT),您可以选择。
贡献
除非您明确表示,否则任何旨在包含在作品中的有意提交的贡献,根据Apache-2.0许可证定义,应以上述双重许可方式授权,不附加任何额外条款或条件。
依赖关系
~380KB