4 个版本
0.7.0 | 2020 年 4 月 9 日 |
---|---|
0.6.3 | 2020 年 1 月 27 日 |
0.6.2 | 2020 年 1 月 27 日 |
0.6.1 | 2020 年 1 月 27 日 |
在 加密学 中排名第 2415
每月下载 28 次
26KB
574 行
bcrypt
安装
将以下内容添加到 Cargo.toml
bcrypt = "0.7"
最低 Rust 版本为 1.34.0
用法
该包公开了 3 件事: DEFAULT_COST
, hash
, verify
。
extern crate bcrypt;
use bcrypt::{DEFAULT_COST, hash, verify};
let hashed = hash("hunter2", DEFAULT_COST)?;
let valid = verify("hunter2", &hashed)?;
成本需要是一个介于 4 和 31 之间的整数(参见基准以了解每个的成本/速度比),DEFAULT_COST
是 12。
基准测试
速度取决于使用的成本:成本越高,速度越慢。以下是我 4 年前的笔记本电脑上的一些基准测试,以提供一些成本/速度比的思路。请注意,我不使用 14 以上,因为它需要太长时间。
test bench_cost_4 ... bench: 1,197,414 ns/iter (+/- 112,856)
test bench_cost_10 ... bench: 73,629,975 ns/iter (+/- 4,439,106)
test bench_cost_default ... bench: 319,749,671 ns/iter (+/- 29,216,326)
test bench_cost_14 ... bench: 1,185,802,788 ns/iter (+/- 37,571,986)
致谢
这个 gist 为哈希分割和空终止提供了帮助。
变更日志
- 0.7.0: 添加
hash_with_salt
函数并移除 Error::description 实现,因为它已弃用 - 0.6.3: 添加
hash_with_salt
函数并使Version::format_version
成为常量 - 0.6.2: 将 base64 更新到 0.12
- 0.6.1: 将 base64 更新到 0.11
- 0.6.0: 允许用户选择 bcrypt 版本,默认为 2b 而不是 2y
- 0.5.0: 公开内联
bcrypt
函数 + 2018 版本 - 0.4.0: 将 DEFAULT_COST 常量改为静态
- 0.3.0: 禁止密码中包含 NULL 字节并更新依赖项
- 0.2.2: 更新 rand
- 0.2.1: 更新 rand
- 0.2.0: 用 blowfish 替换 rust-crypto,使用更多现代 Rust 特性如
?
并处理更多错误 - 0.1.6: 更新 rand 和 base64 依赖项
- 0.1.5: 更新 lazy-static 到 1.0
- 0.1.4: 用 bcrypt 替换 rustc-serialize 依赖项
- 0.1.3: 修复当密码 > 72 个字符时发生恐慌的问题
- 0.1.1: 使 BcryptResult, BcryptError 公开并更新依赖项
- 0.1.0: 初次发布
依赖项
~1–1.4MB
~26K SLoC