5个版本 (破坏性更新)
0.5.0 | 2022年3月2日 |
---|---|
0.4.0 | 2021年10月10日 |
0.3.0 | 2021年10月6日 |
0.2.0 | 2021年9月26日 |
0.1.0 | 2021年9月21日 |
#741 in 文件系统
18KB
151 行
Paranoid-Hash
Paranoid-Hash是一个Rust crate,用于使用Rust库提供的哈希函数和操作系统提供的哈希函数对文件、字符串或字节进行哈希。
功能
哈希函数
使用的库哈希函数是具有1到64位任意给定摘要大小的Blake2b。
操作系统哈希函数可以是SHA1、SHA256或SHA512。
比较哈希值
包含一个比较哈希函数的函数,并尝试以常量时间运行。
十六进制表示
哈希函数返回两个用十六进制编码的字符串。您可以使用函数decode_from_hex()
获取字节表示。
如何使用
选择摘要大小和哈希函数
use paranoid_hash::{ParanoidHash,OsAlgorithm};
fn main(){
// Hash Using Blake2b (32 bytes) and SHA256
let context = ParanoidHash::new(32usize,OsAlgorithm::SHA256);
}
哈希文件
use paranoid_hash::{ParanoidHash};
fn main(){
// Default Config
// [LIB] BLAKE2B_64
// [OS] SHA512
let context = ParanoidHash::default();
// Blake2B and SHA512 Hash Function Returns
let (blake_64,sha512) = context.read("example_file.txt").expect("Failed To Read File");
}
哈希字符串
use paranoid_hash::{ParanoidHash};
fn main(){
let s: String = String::from("Hello. This string will be hashed");
let context = ParanoidHash::default();
let (blake2b,sha512) = context.read_str(s);
}
哈希字节
use paranoid_hash::{ParanoidHash};
fn main(){
let bytes: Vec<u8> = vec![78,32,48,64];
let context = ParanoidHash::default();
let (blake2b,sha512) = context.read_bytes(&bytes);
}
从十六进制解码
use paranoid_hash::{ParanoidHash};
fn main(){
let bytes: Vec<u8> = vec![78,32,48,64];
let context = ParanoidHash::default();
let (blake2b,sha512) = context.read_bytes(&bytes);
let hash_bytes = ParanoidHash::decode_from_hex(blake2b);
}
许可
此软件受
- MIT许可
- Apache 2.0
依赖关系
~205–780KB
~13K SLoC