1个不稳定版本
0.2.1 | 2023年3月25日 |
---|---|
0.2.0 |
|
0.1.8 |
|
0.1.6 |
|
0.1.4 |
|
#2088 in 加密学
11KB
187 行
🔑 rscrypt
《Rscrypt》库提供创建和验证密码散列的功能。
🚀 安装
要在Rust项目中使用《rscrypt》库,请在您的《Cargo.toml》文件中将它作为依赖项添加
[dependencies]
rscrypt = "*"
然后,运行 cargo build
下载和编译依赖项。
或者,您可以使用以下命令添加库的最新版本
cargo add rscrypt
安装完成后,您可以使用以下方式在Rust代码中导入库
use rscrypt::{ Rscrypt };
就这样!您现在可以在Rust项目中使用《rscrypt》库了。
🏗️ 结构 Rscrypt
此结构提供以下实用函数
🔎 函数 compare(src: &str, dst: &str) -> bool
此函数将明文密码字符串 src
与散列密码字符串 dst
进行比较。如果它们匹配,则返回 true
,否则返回 false
。
use rscrypt::{Rscrypt};
let salt = Rscrypt::gen_salt(10);
let hashed = Rscrypt::hash(&salt, "password");
assert!(Rscrypt::compare("password", &hash));
🔒 函数 gen_salt(cost: usize) -> String
此函数生成一个随机盐值,可用于散列密码。参数 cost
确定散列过程中要执行的计算轮数。
use rscrypt::{Rscrypt};
let salt = Rscrypt::gen_salt(10);
let hashed = Rscrypt::hash(&salt, "password");
assert!(Rscrypt::compare("password", &hashed));
🔍 函数 get_salt(hash: &str) -> Option<String>
此函数从给定的 hash
字符串中提取用于散列的盐值。
use rscrypt::{Rscrypt};
let hash = "iIBDWiEk0118e29VbozxVmoCscUzu6k05cKGFbtgogI=$rscrypt$0.2.0$10$rLBARHBrWKCsvACVvBAN7O";
let salt = Rscrypt::get_salt(&hash);
assert_eq!(salt, "$rscrypt$0.2.0$10$rLBARHBrWKCsvACVvBAN7O");
🚀 函数 hash(salt: &str, unhashed_str: &str) -> String
此函数使用给定的盐值 salt
对明文密码字符串 unhashed_str
进行散列。
use rscrypt::{Rscrypt};
let hashed = Rscrypt::hash("$rscrypt$0.2.0$10$rLBARHBrWKCsvACVvBAN7O", "password");
assert_eq!(
hashed,
"iIBDWiEk0118e29VbozxVmoCscUzu6k05cKGFbtgogI=$rscrypt$0.2.0$10$rLBARHBrWKCsvACVvBAN7O"
);
🕵️♀️ 函数 is_valid_hash(hash: &str) -> bool
如果给定的散列字符串是一个有效的散列密码字符串,则此函数返回 true
,否则返回 false
。
use rscrypt::{Rscrypt};
let hash = "iIBDWiEk0118e29VbozxVmoCscUzu6k05cKGFbtgogI=$rscrypt$0.2.0$10$rLBARHBrWKCsvACVvBAN7O";
assert!(Rscrypt::is_valid_hash(&hash));
📝 许可证
本项目受 MIT 许可证 许可。
依赖项
~2.7–4MB
~68K SLoC