8个版本 (4个重大更改)

0.5.0 2021年4月30日
0.4.0 2020年12月10日
0.3.0 2020年11月23日
0.2.1 2020年6月20日
0.1.1 2018年3月30日

#1921 in 密码学

Download history 600/week @ 2024-04-08 585/week @ 2024-04-15 766/week @ 2024-04-22 844/week @ 2024-04-29 495/week @ 2024-05-06 630/week @ 2024-05-13 577/week @ 2024-05-20 359/week @ 2024-05-27 551/week @ 2024-06-03 653/week @ 2024-06-10 679/week @ 2024-06-17 563/week @ 2024-06-24 566/week @ 2024-07-01 681/week @ 2024-07-08 650/week @ 2024-07-15 606/week @ 2024-07-22

每月2,515次下载
5个crate中使用(通过check-if-email-exists

MIT/Apache

12KB
142

Crates.io Build Status MIT licensed Apache-2.0 licensed

pwned-rs

将您的密码与Have I been pwned?进行对比

用法

将其添加到您的Cargo.toml中

[dependencies]
pwned = { git = "https://github.com/wisespace-io/pwned-rs.git" }

将密码与API进行对比,并查看出现的次数

它使用范围API,因此只有SHA1哈希密码的前5个字符被发送到Have I been pwned?

use pwned::api::*;

#[tokio::main]
async fn main() {
    let pwned = PwnedBuilder::default()
        .build().unwrap();

    match pwned.check_password("password").await {
        Ok(pwd) => println!("Pwned? {} - Occurrences {}", pwd.found, pwd.count),
        Err(e) => println!("Error: {}", e),
    }
}

检查一个账户的所有违规行为

use pwned::api::*;
#[tokio::main]
async fn main() {
    
    let pwned = PwnedBuilder::default()
        .user_agent("my_user_agent")
        .api_key(std::env::var("HIBP_API_KEY").expect("You need to give your HIBP API key as the HIBP_API_KEY environment variable"))
        .build().unwrap();

    match pwned.check_email("[email protected]").await {
        Ok(answer) => {
            for breach in answer {
                println!("Service {:?}, breach date {:?} Domain: {:?}", breach.name, breach.breach_date, breach.domain);
            }
        },
        Err(e) => println!("Message: {}", e),
    }

}

依赖关系

~4–16MB
~246K SLoC