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 密码学
每月2,515次下载
在5个crate中使用(通过check-if-email-exists)
12KB
142 行
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