PwnedCheck 是一个命令行工具,用于通过 Have I Been Pwned API 检查密码是否出现在已知的数据泄露事件中,并支持加密的 Bitwarden 保险库导出文件。
-hashed 接受预哈希的 SHA-1 输入-bw 检查 Bitwarden 加密导出文件-hide 在输出中隐藏明文密码-v 显示请求级别的 HIBP 诊断信息-stats 打印运行结束时的统计信息你可以直接从发布页面下载为你的操作系统量身定制的预编译静态二进制文件:
pwnedcheck_x.x.x_linux_amd64.tar.gz(或 arm64)pwnedcheck_x.x.x_darwin_amd64.tar.gz(或 arm64)pwnedcheck_x.x.x_windows_amd64.zipLinux / macOS: 在解压后的目录中打开终端,使二进制文件可执行,然后运行它:
chmod +x pwnedcheck
./pwnedcheck -h
Windows: 未经测试,但欢迎反馈
在包含解压后的 pwnedcheck.exe 的文件夹中打开 PowerShell 或命令提示符并执行:
.\pwnedcheck.exe -h
将 CLI 安装到你的 Go bin 目录:
go install github.com/mohamedation/PwnedCheck/cmd/pwnedcheck@latest
git clone https://github.com/mohamedation/PwnedCheck.git
cd PwnedCheck
make install
这会将当前主机的二进制文件安装到你的 Go bin 目录。
使用 Makefile 为 Linux 或 macOS 生成发布二进制文件:
make build-linux
make build-macos
二进制文件会写入 dist/,文件名中包含你当前的 Go 架构。
如果你希望将二进制文件以特定于操作系统的名称复制到你的 Go bin 目录,请使用:
make install-linux
make install-macos
这些命令会将其安装为 pwnedcheck。
从源码运行:
go run ./cmd/pwnedcheck -v god
或运行已安装的二进制文件:
pwnedcheck -i passwords.list -stats
检查单个密码:
pwnedcheck password123
检查多个密码:
pwnedcheck love sex secret god

从文件检查密码:
pwnedcheck -i passwords.list
检查预哈希的 SHA-1 值:
pwnedcheck -hashed -i passwords.list

检查 Bitwarden 加密导出文件:
pwnedcheck -bw -i bitwarden_encrypted_export.json -hide -stats
启用详细的 HIBP 请求日志记录:
pwnedcheck -v password123
-i, --input <string> : 包含密码或 JSON 导出的输入文件(默认 "passwords.txt")-bw, --bitwarden : 将输入文件视为受密码保护的 Bitwarden 加密 JSON 导出文件-H, --hashed : 将输入视为预计算的 SHA-1 哈希值而非明文-x, --hide : 在控制台输出中隐藏明文密码-s, --stats : 完成后显示运行时间和结果摘要-v, --verbose : 打印每个 HIBP 请求和响应状态以显示 API 诊断信息-c, --credits : 显示致谢信息-h, --help : 显示帮助PwnedCheck 使用 HIBP 所采用的 k-匿名方法:
[1/2] Checking...
BAD PASSWORD — BREACH DETECTED (item #1)
Password: 123456
Total runtime: 1.5s
Total passwords checked: 2
Bad passwords found: 1
Good passwords: 1
cmd/pwnedcheck:CLI 入口点和标志解析internal/checker:运行循环和输出格式化internal/hibp:HIBP 客户端和密码哈希internal/bitwarden:Bitwarden 导出解密make test # 运行单元测试
make cover # 运行测试并显示覆盖率摘要
文档:pkg.go.dev · 覆盖率:Codecov