2 个版本
使用旧的 Rust 2015
0.1.1 | 2018 年 10 月 20 日 |
---|---|
0.1.0 | 2018 年 10 月 20 日 |
#11 在 #bcrypt
15KB
256 行
BCrypter
基于 Blowfish 密码的 bcrypt 哈希函数的纯 Rust 实现。目前仅运行在 nightly 构建。完整的 API 文档可以在 这里 找到
安装
在你的 Cargo.toml 文件中
[dependencies]
bcrypter = "0.1.1"
使用
基本哈希
extern crate bcrypter;
use bcrypter::password;
let pw = "hunter2".to_string();
let result = password(pw).hash().unwrap();
let bcrypt_hash_string = result.hash_string;
自定义成本
let result = password(pw)
.cost(6)
.hash()
.unwrap();
自定义盐
let salt = [0u8; 16];
let result = password(pw)
.salt(salt)
.cost(8)
.hash()
.unwrap();
验证密码
let known_hash = "$2a$04$7eAf8viXin8zazyvaU2HLuZGEbvaHy/lsnlG.HFWkBST5irHhXKJO".to_string();
let correct_password : bool = password(pw)
.verify(known_hash)
.unwrap()
原始摘要
let result = password(pw).hash().unwrap();
let digest_bytes : [u8: 24] = result.digest;
注意
-
默认成本为 12
-
当没有提供盐参数时,使用随机 16 字节数组。
-
最大密码输入为 72 字节,超过该值将被截断而不是引发错误。如果你需要更大的输入,请考虑先进行哈希处理。
依赖
~800KB
~13K SLoC