PasswordBox 是一款基于 Wails 2 开发的本地密码管理器,采用 Go + Vue 3 + Element Plus 技术栈。所有密码数据均存储在本地 SQLite 数据库中,通过 AES-256 加密保护,密钥由 Argon2id 安全派生,无需联网即可使用。
在数字化生活中,每个人都需要管理大量的账号和密码。PasswordBox 提供了一个简洁、安全、完全离线的解决方案:
- 完全离线:数据库和加密盐值均保存在本地,不上传任何云端。
- 单用户设计:无需注册多用户,首次使用只需设置一个主密码即可开始使用。
- 安全加密:采用 Argon2id 从主密码派生 AES-256 密钥,所有敏感字段(标题、网址、用户名、密码、备注)均加密存储。
- 现代 UI:基于 Vue 3 和 Element Plus 构建,支持列表/网格双视图、收藏筛选、实时搜索等交互。
- 系统托盘:关闭窗口后自动缩至托盘,单击托盘图标恢复窗口,右键菜单可快速显示或退出应用。
task deps:install该命令会自动下载 Go 依赖并安装前端 npm 依赖。
# 查看所有可用任务
task
# 开发模式(热重载)
task dev
# 构建当前平台的生产版本
task build
# 运行所有测试
task test
# 运行 Go 代码检查
task vet
# 清理构建产物
task clean# Windows
task build:windows
# Linux
task build:linux
# macOS(Intel + Apple Silicon)
task build:mac
# 构建所有平台
task build:all构建成功后,可执行文件位于 build/bin/ 目录下。
| 功能 | 说明 |
|---|---|
| 主密码初始化 | 首次启动设置主密码,实时检测密码强度 |
| 一键解锁 | 已初始化后输入主密码即可解锁进入主界面 |
| 密码条目管理 | 新增、编辑、删除密码条目 |
| 字段加密存储 | 标题、网址、用户名、密码、备注全部 AES-256 加密 |
| 收藏与筛选 | 支持收藏条目,并按全部 / 收藏 / 最近添加筛选 |
| 实时搜索 | 按标题、用户名或网址快速搜索 |
| 视图切换 | 列表视图与网格视图一键切换 |
| 密码显示/复制 | 支持显示/隐藏密码,一键复制到剪贴板 |
| 系统托盘 | 关闭窗口缩至托盘,单击恢复,右键菜单显示/退出 |
PasswordBox 采用单用户模式。首次打开应用时,系统会引导你设置一个主密码。该密码不会直接存储,而是通过 Argon2id 算法与一个 16 字节随机盐值派生出 32 字节的 AES 密钥,用于加解密数据库中的敏感字段。盐值文件保存为同目录下的 salt.bin。
每次启动应用后,需要输入主密码进行解锁。锁定后(或重新启动),AES 密钥会从内存中清除,必须再次输入主密码才能访问数据。
每个密码条目包含以下字段:
- 标题:如 "GitHub"、"Gmail"
- 网址:如
https://github.com - 用户名:登录账号
- 密码:账号密码(加密存储)
- 备注:额外说明信息
- 收藏状态:是否加入收藏夹
在主页上方的搜索框中输入关键词,应用会实时在标题、用户名和网址三个字段中匹配,快速定位目标条目。
工具栏提供筛选按钮:
- 全部:显示所有条目
- 收藏:仅显示已收藏的条目
- 最近添加:显示最新添加的 10 条记录
- 列表视图:以表格形式展示,信息完整,适合快速浏览
- 网格视图:以卡片形式展示,带网站图标(Favicon),视觉更直观
支持按以下方式排序:
- 名称(稳定顺序)
- 最近添加
- 最近修改
PasswordBox 支持系统托盘常驻,方便后台管理密码:
- 关闭窗口不退出:点击窗口右上角的关闭按钮时,应用会自动隐藏到系统托盘,保持后台运行。
- 单击恢复:左键单击托盘图标,主窗口立即恢复显示并前置。
- 右键菜单:右键托盘图标可快速选择"显示"或"退出",点击"退出"将完全结束应用进程。
.
├── PasswordBox/
│ ├── app.go # 后端核心业务逻辑(Wails 绑定)
│ ├── app_test.go # 后端单元测试
│ ├── main.go # 应用入口
│ ├── internal/
│ │ ├── config/ # Argon2id 密钥派生与盐值管理
│ │ ├── log/ # 日志封装
│ │ └── utils/ # 密码强度检测等工具函数
│ ├── frontend/ # Vue 3 前端源码
│ │ └── src/
│ │ ├── App.vue
│ │ └── components/
│ ├── wails.json # Wails 项目配置
│ └── go.mod # Go 模块依赖
├── Taskfile.yml # 项目构建与任务管理
└── README.md # 项目介绍
MIT License