1个不稳定发布

0.0.1 2019年9月11日

#5 in #hibp

MIT许可证

18KB
304 代码行

pwnage.rs

Have I Been Pwned API v3库

文档:Have I Been Pwned: API v3

HIBP API

选项 描述 参数
breached_account 一个账户的所有泄露(截断响应) 账户
breached_account_full 一个账户的所有泄露 账户
breached_account_by_domain 按域名筛选的一个账户的所有泄露(截断响应) 账户,域名
breached_account_by_domain_full 按域名筛选的一个账户的所有泄露 账户,域名
breaches 所有泄露网站 -
breaches_by_domain 按域名筛选的系统中的泄露网站 域名
breach 单个泄露网站 名称
data_classes 所有数据类 -
paste_account 一个账户的所有粘贴 账户
pwned_passwords 搜索Pwned密码 密码

示例

let api_key = String::from("API-KEY"); // HIBP API Key
let user_agent = String::from("GitHub.com/OptionalValue");
let hibp = pwnage::HIBP::new(api_key, user_agent);
let email_address = "[email protected]"; // Email Address
let breaches = hibp.breached_account_full(email_address)?;
	for breach in &breaches {
        println!(
            "Name: {:?} | Title: {:?} | Date: {:?}",
            breach.name, breach.title, breach.breach_date
        );
}

Pwned密码

Pwnage将密码哈希的前五个字符发送到HIBP,并接收匹配前缀的尾部。Pwnage在本地比较尾部并返回结果。

选项 描述 参数
pwned_passwords 搜索Pwned密码 密码

示例

let password = "Password123";
let user_agent = "GitHub.com/OptionalValue";
let pwned_password = pwnage::pwned_passwords(password, user_agent)?;
println!(
    "Pwned?: {:?} | Times: {:?}",
    pwned_password.pwned, pwned_password.times
);

依赖

~21MB
~450K SLoC