百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
P

PwnedPasswordsDownloader

> 编程语言
开源

一个工具,用于下载所有已泄露密码的哈希范围,并将其保存到离线状态,以便在不依赖 k-anonymity API 的情况下使用。

1.3K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

一个工具,用于下载所有已泄露密码的哈希范围,并将其保存到离线状态,以便在不依赖 k-anonymity API 的情况下使用。

What is haveibeenpwned-downloader?

haveibeenpwned-downloader is a dotnet tool to download all Pwned Passwords hash ranges and save them offline so they can be used without a dependency on the k-anonymity API.

An alternative to running this tool is to use Zsolt Müller's cURL approach in https://github.com/HaveIBeenPwned/PwnedPasswordsDownloader/issues/79 that makes use of a glob pattern and parallelism.

Installation

Prerequisites

Install the .NET 10 SDK or later to install the tool. Native AOT, self-contained packages are available for Windows x64, Linux x64, and macOS Apple silicon; the installed tool does not require a separate .NET runtime. Other runtime combinations use a framework-dependent fallback package and require the .NET 10 runtime.

How to install

  1. Open a command line window
  2. Run dotnet tool install --global haveibeenpwned-downloader

How to update to the latest version

  1. Open a command line window
  2. Run dotnet tool update --global haveibeenpwned-downloader

Troubleshooting

If the installer is unable to resolve the package, then you can run the following and then try again.

dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org

Content verification

Every downloaded hash range is verified against the Content-MD5 response header supplied by the Pwned Passwords API before it is accepted. A verification failure is retried according to --max-retries; if retries are exhausted, the downloader fails rather than reporting the corrupt range as successfully downloaded.

Incremental directory downloads

Directory downloads create sha1.index or ntlm.index in the output directory. The index is a prefix-sorted, tab-delimited list of range prefixes and ETags, written atomically. On later runs, the downloader sends the saved ETag with If-None-Match; ranges that have not changed are retained locally without downloading their content again. Ranges returned without an ETag are not indexed and download again on each run.

Use --force to ignore the existing index, download every range, and rebuild the index. Indexes are not used with --single, which always creates a complete output file.

Usage Examples

Run haveibeenpwned-downloader with no parameters to display its usage and examples. Supply an output name to begin a download.

Windows

Download all SHA1 hashes to a single txt file called pwnedpasswords.txt

haveibeenpwned-downloader.exe pwnedpasswords --single

Download all SHA1 hashes to individual txt files into a custom directory called hashes

haveibeenpwned-downloader.exe hashes

Download all NTLM hashes to individual txt files into a custom directory called ntlm_hashes

haveibeenpwned-downloader.exe ntlm_hashes --ntlm

Download all NTLM hashes to a single txt file called pwnedpasswords_ntlm.txt

haveibeenpwned-downloader.exe -n pwnedpasswords_ntlm --single

Linux

Download all SHA1 hashes to a single txt file called pwnedpasswords.txt :

haveibeenpwned-downloader pwnedpasswords --single

Download all SHA1 hashes to individual txt files into a custom directory called hashes:

haveibeenpwned-downloader hashes

Download all NTLM hashes to individual txt files into a custom directory called ntlm_hashes:

haveibeenpwned-downloader ntlm_hashes --ntlm

Download all NTLM hashes to a single txt file called pwnedpasswords_ntlm.txt :

haveibeenpwned-downloader -n pwnedpasswords_ntlm --single

Additional parameters

Parameter Default value Description
-s/--single false When set, downloads hashes to a single file instead of individual .txt files in a directory
-p/--parallelism Same as Environment.ProcessorCount Determines how many hashes to download at a time
--max-retries Unlimited Determines how many times each prefix is retried after a failure. Omit for unlimited retries, or pass 0 to disable retries. Retry delays increase per prefix up to 10 seconds.
-o/--overwrite false Determines if output files should be overwritten or not
-n/--ntlm (none) When set, the downloader fetches NTLM hashes instead of SHA1
--force false Ignores saved ETags, downloads every range, and rebuilds the index for directory output

Additional usage examples

Download all hashes to individual txt files into a custom directory called hashes using 64 threads to download the hashes

haveibeenpwned-downloader.exe hashes -p 64

Download all hashes to a single txt file called pwnedpasswords.txt using 64 threads, overwriting the file if it already exists

haveibeenpwned-downloader.exe pwnedpasswords --single -o -p 64

Download all hashes with at most 5 retries per prefix

haveibeenpwned-downloader.exe pwnedpasswords --max-retries 5

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C#

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言