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 <字符串> : 包含密码或 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] 正在检查...
危险密码 — 检测到泄露 (项目 #1)
密码: 123456
总运行时间: 1.5秒
检查的密码总数: 2
发现的危险密码: 1
安全密码: 1
cmd/pwnedcheck: CLI 入口点和参数解析internal/checker: 运行循环和输出格式化internal/hibp: HIBP 客户端和密码哈希处理internal/bitwarden: Bitwarden 导出文件解密