#加密 #密码 #安全 #工具 #安全密码 #比较

rscrypt

rscrypt 是一个由Rust编写的简单、快速、安全的加密工具

1个不稳定版本

0.2.1 2023年3月25日
0.2.0 2023年3月22日
0.1.8 2022年10月1日
0.1.6 2022年8月26日
0.1.4 2022年7月25日

#2088 in 加密学

MIT 许可证

11KB
187

🔑 rscrypt

Rate this package

《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