HaveIBeenPwned/PwnedPasswordsDownloader
GitHub: HaveIBeenPwned/PwnedPasswordsDownloader
一个.NET全局工具,用于批量下载HaveIBeenPwned密码泄露哈希数据库,实现无需联网的离线密码安全检测。
Stars: 1145 | Forks: 121
# 什么是 haveibeenpwned-downloader?
`haveibeenpwned-downloader` 是一个 [dotnet tool](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools),用于下载所有 Pwned Passwords 哈希范围并将其离线保存,以便在不依赖 k-anonymity API 的情况下使用它们。
运行此工具的替代方法是使用 Zsolt Müller 在 https://github.com/HaveIBeenPwned/PwnedPasswordsDownloader/issues/79 中提出的 cURL 方法,该方法利用了 glob 模式和并行处理。
# 安装
## 前置条件
您需要安装最新版本的 [LTS (长期支持)](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) 或 [STS (短期支持)](https://dotnet.microsoft.com/en-us/download/dotnet/9.0) .NET SDK 才能安装和运行该工具。
## 如何安装
1. 打开命令行窗口
2. 运行 `dotnet tool install --global haveibeenpwned-downloader`
## 如何更新到最新版本
1. 打开命令行窗口
2. 运行 `dotnet tool update --global haveibeenpwned-downloader`
### 故障排除
如果安装程序无法解析包,您可以运行以下命令,然后重试。
```
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
```
# 使用示例
## Windows
### 将所有 SHA1 哈希下载到名为 `pwnedpasswords.txt` 的单个 txt 文件中
`haveibeenpwned-downloader.exe pwnedpasswords`
### 将所有 SHA1 哈希下载到名为 `hashes` 的自定义目录中的各个 txt 文件中
`haveibeenpwned-downloader.exe pwnedpasswords -s false`
### 将所有 NTLM 哈希下载到名为 `pwnedpasswords_ntlm.txt` 的单个 txt 文件中
`haveibeenpwned-downloader.exe -n pwnedpasswords_ntlm`
## Linux
### 将所有 SHA1 哈希下载到名为 `pwnedpasswords.txt` 的单个 txt 文件中:
`haveibeenpwned-downloader pwnedpasswords`
### 将所有 SHA1 哈希下载到名为 `hashes` 的自定义目录中的各个 txt 文件中:
`haveibeenpwned-downloader pwnedpasswords -s false`
### 将所有 NTLM 哈希下载到名为 `pwnedpasswords_ntlm.txt` 的单个 txt 文件中:
`haveibeenpwned-downloader -n pwnedpasswords_ntlm`
# 附加参数
| Parameter | Default value | Description |
|-------------|---------------|-------------|
| -s/--single | true | 确定是将哈希下载到单个文件还是作为单独的 .txt 文件下载到另一个目录 |
| -p/--parallelism | 与 `Environment.ProcessorCount` 相同 | 确定一次下载多少个哈希 |
| -o/--overwrite | false | 确定是否覆盖输出文件 |
| -n | (none) | 设置后,下载器将获取 NTLM 哈希而不是 SHA1 |
# 更多使用示例
## 使用 64 个线程将所有哈希下载到名为 `hashes` 的自定义目录中的各个 txt 文件中
`haveibeenpwned-downloader.exe hashes -s false -p 64`
## 使用 64 个线程将所有哈希下载到名为 `pwnedpasswords.txt` 的单个 txt 文件中,如果文件已存在则覆盖
`haveibeenpwned-downloader.exe pwnedpasswords -o -p 64`
标签:HaveIBeenPwned, HIBP, K-anonymity, .NET工具, NTLM, Pwned Passwords, SHA1, 二进制发布, 凭证填充, 哈希检查, 多人体追踪, 密码安全, 密码策略, 开源工具, 数据展示, 离线下载, 红队, 网络安全, 隐私保护