17 个版本 (4 个稳定版)

2.1.0 2024年1月8日
2.0.0 2023年8月11日
1.0.1 2023年8月7日
1.0.0 2022年1月7日
0.3.0 2017年3月22日

#2 in #argon2

Download history 40415/week @ 2024-04-21 35939/week @ 2024-04-28 35013/week @ 2024-05-05 41552/week @ 2024-05-12 42855/week @ 2024-05-19 36666/week @ 2024-05-26 35714/week @ 2024-06-02 33518/week @ 2024-06-09 34758/week @ 2024-06-16 36973/week @ 2024-06-23 28796/week @ 2024-06-30 35417/week @ 2024-07-07 31954/week @ 2024-07-14 34664/week @ 2024-07-21 38881/week @ 2024-07-28 41446/week @ 2024-08-04

148,618 每月下载量
160 个 crate (96 直接) 中使用

MIT/Apache

79KB
1.5K SLoC

Rust-argon2

Rust 库,用于使用 Argon2 散列密码,Argon2 是赢得 密码散列竞赛 (PHC) 的密码散列函数。

用法

要使用 rust-argon2,将以下内容添加到您的 Cargo.toml

[dependencies]
rust-argon2 = "2.1"

并在您的 crate 根目录中添加以下内容

extern crate argon2;

示例

使用默认设置创建密码散列并验证它

use argon2::{self, Config};

let password = b"password";
let salt = b"randomsalt";
let config = Config::default();
let hash = argon2::hash_encoded(password, salt, &config).unwrap();
let matches = argon2::verify_encoded(&hash, password).unwrap();
assert!(matches);

使用自定义设置创建密码散列并验证它

use argon2::{self, Config, Variant, Version};

let password = b"password";
let salt = b"othersalt";
let config = Config {
    variant: Variant::Argon2i,
    version: Version::Version13,
    mem_cost: 65536,
    time_cost: 10,
    lanes: 4,
    secret: &[],
    ad: &[],
    hash_length: 32
};
let hash = argon2::hash_encoded(password, salt, &config).unwrap();
let matches = argon2::verify_encoded(&hash, password).unwrap();
assert!(matches);

限制

此 crate 与它使用的 blake2-rfc crate 具有相同的限制。它不会尝试从其工作内存中清除可能敏感的数据。要正确地这样做而不产生沉重的性能惩罚,需要编译器的帮助。最好不要尝试这样做,以免提供错误的保证。

此版本使用标准实现,尚未实现优化。因此,它不是最快速的实现。

许可证

Rust-argon2 在 MITApache 2.0 许可证下双许可,与 Rust 编译器相同的许可证。

贡献

欢迎贡献。通过提交拉取请求,您同意将您的工作在 Rust-argon2 项目的许可条款下提供给他人。

依赖

~440–640KB
~13K SLoC