#password-manager #password #argon2 #aes-gcm #command-line-tool #cli

bin+lib pwdm

用于管理密码的简单命令行工具和 Rust 库

5 个版本 (3 个重大更改)

0.4.0 2024 年 5 月 6 日
0.3.1 2024 年 4 月 28 日
0.3.0 2024 年 4 月 26 日
0.2.0 2024 年 4 月 22 日
0.1.0 2024 年 4 月 20 日

#1497密码学

Download history 171/week @ 2024-04-16 252/week @ 2024-04-23 121/week @ 2024-04-30 54/week @ 2024-05-07 1/week @ 2024-05-14 10/week @ 2024-05-21 17/week @ 2024-07-02

每月下载量 256

Apache-2.0

47KB
1.5K SLoC

github

pwdm - 密码管理器

用于管理密码的简单命令行工具和 Rust 库。

密码数据库

密码被加密并存储在 SQLite 数据库中,每个密码都通过 服务名 和可选的 用户名 唯一标识。

安全性

在将密码存储到数据库之前,每个密码都使用 AES-256-GCM 进行加密。 pwdm 使用用户提供的 主密码(带有随机生成的盐)作为输入到 Argon2 密钥派生函数(Argon2id)以派生加密密钥。与数据库文件相关联有一个主密码。首次提供主密码时,也使用 Argon2(与另一个随机生成的盐)将密码哈希到适合基于密码的身份验证的 PHC 字符串。哈希存储在数据库中以在后续调用中验证主密码。

主密码应该 强大。因此,作为预防措施,此密码管理器在设置或更新主密码时始终使用 Dropbox 的 zxcvbn 密码强度估算器,并强制要求 zxcvbn 的估算([0, 4] 区间内的一个整数)为给定密码的最大可能分数 4,该分数据称表示“在离线慢速哈希场景中具有强大的保护”。 交互式尝试 zxcvbn

命令行

$ pwdm --help
Command-line password manager.

Usage: pwdm [OPTIONS]

Options:
  -p, --path <PATH>  Path to the database file
  -h, --help         Print help
  -V, --version      Print version

默认情况下,pwdm CLI 将密码数据库文件存储在 ~/.pwdm/passwords.db。要指定自定义路径,请使用 -p--path 选项或设置 PWDM_PATH 环境变量。

在命令行中,在输入主密码后,可以使用以下交互式命令

  • 添加:添加新密码。
  • 获取:检索密码。
  • 删除:删除密码条目。
  • 更新:更新现有密码。
  • 列出:列出所有密码ID。
  • 更新主密码:更新主密码。
  • 退出:退出程序。

添加更新 中,您可以手动输入密码或选择自动生成一个安全的密码。

安装

cargo install pwdm

许可证

pwdm 采用 Apache-2.0 许可。

依赖项

~34–49MB
~765K SLoC