1个不稳定发布
0.0.1 | 2019年9月11日 |
---|
#5 in #hibp
18KB
304 代码行
pwnage.rs
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