7 个版本 (4 个破坏性更新)

0.6.1 2023 年 7 月 23 日
0.6.0 2023 年 7 月 23 日
0.5.1 2023 年 5 月 11 日
0.5.0 2023 年 4 月 19 日
0.1.0 2023 年 3 月 29 日

98#password

Download history 88/week @ 2024-03-11 220/week @ 2024-04-01 215/week @ 2024-04-08 246/week @ 2024-04-15 121/week @ 2024-04-22 74/week @ 2024-04-29 24/week @ 2024-05-06 62/week @ 2024-05-13 28/week @ 2024-05-20 34/week @ 2024-05-27 108/week @ 2024-06-03 54/week @ 2024-06-10 139/week @ 2024-06-17 93/week @ 2024-06-24

每月 397 次下载

MIT 许可证

295KB
5K SLoC

C 4K SLoC // 0.1% comments Rust 521 SLoC Python 242 SLoC // 0.2% comments Automake 136 SLoC // 0.1% comments Shell 6 SLoC // 0.6% comments Forge Config 4 SLoC

libpwquality 对 Rust 的绑定

Crates.io Crates.io License docs.rs Build Status

用法

cargo add libpwquality

libpwquality-rs 默认链接系统 libpwquality 库,您可以选择启用 vendored 功能并安装 cracklib 字典来构建 libpwquality。当启用 vendored 功能时,如果遇到字典路径问题,您可以导出 DEFAULT_CRACKLIB_DICT 环境变量以指定字典路径。

cargo add libpwquality --features vendored
sudo apt-get install cracklib-runtime

示例

use libpwquality::{PWQError, PWQuality};

fn main() -> Result<(), PWQError> {
    let pwq = PWQuality::new()?;

    pwq.read_default_config()?
        .min_length(9)
        .max_repeat(2)
        .bad_words(["bad", "password"])?;

    let minlen = pwq.get_min_length();
    println!("minlen={}", minlen);

    let badwords = pwq.get_bad_words()?;
    println!("badwords={:?}", badwords);

    let maxrepeat = pwq.get_max_repeat();
    println!("maxrepeat={}", maxrepeat);

    let password = pwq.generate(32)?;
    println!("password={:?}", password);

    let score = pwq.check(&password, Some("password!"), None)?;
    println!("score={}", score);

    Ok(())
}

依赖项