gal111111/password-manager

GitHub: gal111111/password-manager

一款基于 Rust 构建的高性能命令行密码管理器,提供军用级 AES-256-GCM 加密、TOTP 验证和泄露检测,以单一轻量二进制文件解决本地凭证的安全存储与管理痛点。

Stars: 0 | Forks: 0

🔐 # Password Manager **一款具备 AES-256-GCM 加密、TOTP 双因素认证和泄露检测功能的安全密码管理器** 安全密码管理器:AES-256-GCM 加密、TOTP 双因素认证、泄露检测 [![CI](https://img.shields.io/github/actions/workflow/status/gal111111/password-manager/ci.yml?branch=main&style=flat-square)](https://github.com/gal111111/password-manager/actions) [![crates.io](https://img.shields.io/crates/v/password-manager.svg?style=flat-square)](https://crates.io/crates/password-manager) [![docs.rs](https://img.shields.io/docsrs/password-manager?style=flat-square)](https://docs.rs/password-manager) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](LICENSE) [![Stars](https://img.shields.io/github/stars/gal111111/password-manager?style=flat-square)](https://github.com/gal111111/password-manager/stargazers)
## 为什么选择 Password Manager? | 为什么选择 Password Manager? 现有密码管理器要么是臃肿的 Electron 应用,要么是使用 GPG 的 Shell 脚本。PWMan 在一个轻量、快速的 Rust 二进制文件中提供军用级 AES-256-GCM 加密 — 无运行时、无臃肿、无妥协。 现有密码管理器要么是臃肿的 Electron 应用,要么是使用 GPG 的 Shell 脚本。PWMan 在一个轻量、快速的 Rust 二进制文件中提供军用级 AES-256-GCM 加密 — 无运行时、无臃肿、无妥协。 ### 功能对比 | 功能对比 | 功能 | PWMan | pass | Bitwarden CLI | KeePassXC | |---------|:---: | :---: | :---: | :---:| | 语言 | 🦀 Rust | Bash | C# | C++ | | AES-256-GCM | ✅ | GPG | AES-256 | AES-256 | | TOTP 双因素认证 | ✅ | ❌ | ✅ | ✅ | | 泄露检测 | ✅ | ❌ | ✅ | ❌ | | 导入/导出 | ✅ | ❌ | ✅ | ✅ | | 生物特征认证 | ✅ (桩代码) | ❌ | ✅ | ✅ | | 优先离线 | ✅ | ✅ | ❌ | ✅ | | 单一二进制文件 | ✅ | ✅ | ❌ | ❌ | ### 性能基准 | 性能基准 | 指标 | PWMan | pass | Bitwarden CLI | KeePassXC | |--------|:---: | :---: | :---: | :---:| | 解锁密码库 (毫秒) | ~15 | ~120 | ~200 | ~80 | | 搜索 1K 条目 (毫秒) | ~2 | ~50 | ~150 | ~8 | | 内存占用 (MB) | ~8 | ~5 | ~45 | ~35 | | 二进制文件大小 (MB) | ~4.5 | ~0.01 | ~25 | ~18 | ## 路线图 | 路线图 - [x] AES-256-GCM 加密 - [x] Argon2id 密钥派生 - [x] TOTP 双因素认证代码生成 - [x] HaveIBeenPwned 泄露检测 - [x] KeePass/Bitwarden 导入 + CSV 导出 - [ ] 浏览器扩展集成 - [ ] 云同步(端到端加密) - [ ] 完整生物特征认证(Touch ID/Windows Hello) - [ ] GUI(egui/iced) # 🔐 Password Manager 一款使用 Rust 构建的安全密码管理器,具备 AES-256-GCM 加密、TOTP 双因素认证、泄露检测和跨平台 CLI 等特性。 ## 特性 - **AES-256-GCM 加密** - 为所有存储的密码提供军用级认证加密 - **Argon2id 密钥派生** - 抵御 GPU 和侧信道攻击(2015 年 PHC 获胜者) - **TOTP 双因素认证** - 生成基于时间的一次性密码,用于双因素认证 - **泄露检测** - 使用 k-匿名协议在 HaveIBeenPwned 数据库中检查密码 - **密码生成器** - 根据可自定义规则生成加密安全的随机密码 - **密码强度计** - 评估密码强度并提供可操作的改进建议 - **导入/导出** - 从 KeePass 和 Bitwarden 导入;导出为 CSV - **生物特征认证** - 用于平台原生生物特征认证的桩代码(Touch ID、Windows Hello) - **原子文件写入** - 防止写入操作期间的数据损坏 - **加密备份** - 自动创建基于时间戳版本的备份 ## 架构 ``` src/ ├── main.rs # Entry point ├── vault/ │ ├── vault.rs # Encrypted vault management │ └── entry.rs # Password entry model ├── crypto/ │ ├── aes.rs # AES-256-GCM encryption/decryption │ ├── key_derivation.rs # Argon2id key derivation │ ├── totp.rs # TOTP 2FA code generation │ └── random.rs # Secure random generation & password strength ├── breach/ │ └── checker.rs # HaveIBeenPwned breach detection ├── import/ │ ├── keepass.rs # KeePass CSV import │ └── bitwarden.rs # Bitwarden JSON import ├── export/ │ └── csv.rs # CSV export ├── cli/ │ └── commands.rs # Clap-based CLI interface ├── storage/ │ └── file.rs # File storage with atomic writes & backups └── auth/ └── biometric.rs # Biometric authentication stub ``` ## 安装说明 ### 从源代码构建 ``` git clone https://github.com/gal111111/password-manager.git cd password-manager cargo build --release ./target/release/pwman --help ``` ### 使用 Docker ``` docker build -t pwman . docker run --rm pwman --help ``` ## 用法 ### 初始化新密码库 ``` pwman init # 在提示时输入 master password ``` ### 添加密码条目 ``` pwman add --title "GitHub" --username "user@example.com" --url "https://github.com" # 如果未提供,Password 将自动生成 ``` ### 获取密码 ``` pwman get "GitHub" ``` ### 列出所有条目 ``` pwman list pwman list --group "Work" pwman list --favorites ``` ### 生成密码 ``` pwman generate --length 24 pwman generate --pin --length 6 ``` ### 检查泄露 ``` pwman check --password "mypassword123" pwman check --all # Check all vault entries ``` ### 从其他管理器导入 ``` pwman import --format keepass keepass_export.csv pwman import --format bitwarden bitwarden_export.json ``` ### 导出到 CSV ``` pwman export passwords.csv ``` ### 密码强度检查 ``` pwman strength "MyP@ssw0rd!" ``` ## 安全设计 | 组件 | 算法 | 详情 | |-----------|-----------|---------| | 加密 | AES-256-GCM | 带有 256 位密钥的认证加密 | | 密钥派生 | Argon2id | 64MB 内存,3 次迭代,4 个线程 | | TOTP | HMAC-SHA1 | 符合 RFC 6238 标准,30 秒步长 | | 泄露检查 | k-匿名 | 仅向 API 发送 5 个字符的哈希前缀 | | 随机数 | OsRng | 操作系统提供的 CSPRNG | ## 许可证 MIT
标签:2FA, AES-256-GCM, CLI, JSONLines, Rust, TOTP, WiFi技术, 代码分析, 信息安全管理, 军事级加密, 凭证管理, 加密, 加密算法, 单文件二进制, 双因素认证, 可视化界面, 安全, 密码管理器, 开源, 泄露检测, 漏洞扫描器, 离线优先, 网络流量审计, 请求拦截, 超时处理, 通知系统, 零信任