#password #entropy #passphrase #security

废弃 passablewords

以合理方式检查密码强度库

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

MIT 许可证

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