4 个版本 (2 个稳定版)
使用旧 Rust 2015
1.0.1 | 2019年2月2日 |
---|---|
1.0.0 | 2017年7月2日 |
0.1.1 | 2017年4月3日 |
0.1.0 | 2017年4月3日 |
在 #passphrase 中排名 28
4MB
102 行
passablewords
已废弃
我不打算再维护这个项目了。请使用 zxcvbn 代替。
passablewords
是一个密码验证库,它将密码与一百万个最常用的密码以及被破解的能力进行对比。
如果你在问为什么使用 passablewords
而不是 zxcvbn
,那是因为 passablewords
会将密码与一百万个最常用的密码进行对比。而 zxcvbn
只检查30,000个。虽然 zxcvbn
是一个很好的工具,但 passablewords
使用它来检查给定密码的熵,以确保它在足够独特的同时也足够随机。如果你对前30,000个最常用的密码感到满意,那么你可能应该使用 zxcvbn
。如果你想要更多,请考虑使用 passablewords
。
虽然你可以自由地使用任何公开的方法,但使用 check_password
函数是推荐的,因为这个函数在单个调用中检查长度、唯一性和熵。
重要的是要注意,这只是一个提供的信息,并不能防止攻击者访问、解密或猜测你的用户密码。它只是使这个过程变得更难。
安装 passablewords
passablewords
可以通过将 dependencies
添加到你的 cargo.toml
文件的相应部分来添加到你的项目中。
[dependencies]
passablewords = "1"
使用 passablewords
有关如何使用此库的更多信息,请参阅 文档。
然而,通常你会像以下示例一样使用它。
extern crate passablewords;
use passablewords::{check_password, PassablewordResult};
fn main() {
match check_password(password) {
Ok() => println!("That password is probably pretty good!")
Err(err) => match(err) {
PassablewordResult::TooShort => println!("Your password should be longer than 8 characters"),
PassablewordResult::TooCommon => println!("Your should be more unique"),
PassablewordResult::TooSimple => println!("Your should be more random"),
PassablewordResult::NonAsciiPassword => println!("Your password should only contain ASCII characters"),
PassablewordResult::InternalError => println!
}
}
}
它的速度有多快?
以下是在2017款2.3GHz i5的MacBook Pro上运行的基准测试。它非常快!
test bench_check_common_password ... bench: 26 ns/iter (+/- 5)
test bench_check_ok_password ... bench: 1,497,032 ns/iter (+/- 435,657)
test bench_check_short_password ... bench: 1 ns/iter (+/- 0)
test bench_check_simple_password ... bench: 166,063 ns/iter (+/- 70,071)
开发
感谢Rust社区,使这个项目易于安装并开始贡献。
首先,你需要安装Rust(可能是稳定版,但也可以是nightly版。实际上,你需要nightly版来运行基准测试)。我推荐 rustup,但你也可以按照你喜欢的任何方式安装Rust。
由于Rust自带cargo安装,你应该下载cargo依赖项。
cargo update
此时,最好确保所有测试都通过,所以让我们运行测试。
cargo test
最后,进行任何您想要的更改并提交一个 pull request (pr)。提前感谢!
行为准则
许可证
本库的代码采用MIT许可证授权。
密码列表采用Creative Commons Attribution ShareAlike 3.0许可证授权。
感谢SecLists项目提供的列表。
变更日志
依赖项
~8MB
~152K SLoC