Just another password manager.
本软件是一个有特色的密码管理器,既可架设到服务器中,也可在本地运行,通过访问网页使用(因此不同的电脑、手机系统都可使用,也不用考虑同步,这使得程序代码可以非常简单)。
采用简单有效的 NaCl (libsodium) 加密方式,该方式以 “容易正确处理” 为最大特点, 因此可以确保加密过程得到正确处理。
本软件采用了 Go 语言的 embed 技术,把静态资源也打包到程序中,因此不需要安装,直接下载一个文件,通过点击或命令行启动程序即可使用。(下载 ➡ Releases)
默认端口是 80, 启动程序后用浏览器访问 http://127.0.0.1 即可打开程序界面。
可使用 -addr
参数修改端口,例如:
mima.exe -addr 127.0.0.1:8080
本软件采用 sqlite, 默认保存在 os.UserConfigDir, 可使用参数 -db
指定数据库的文件夹(必须是一个已存在的文件夹),例如:
$ mkdir mima-db-folder
$ mima -db ./mima-db-folder
https://mimademo.ai42.cc (密码:abc)
- 完整的历史记录 不仅记录历史密码,甚至用户名与备注的每次修改都全部记录
- 神奇的标签功能 利用标签可轻松实现多密码与分组,并可代替顶置(详见后文)
- 首页无列表 多数密码管理软件一打开就是网址与用户名列表,虽然通常密码隐藏,但有时网址与用户名也可能是隐私,需要防旁人窥视
- 信任IP可使用PIN码登入 通过受信任的 IP 访问时可使用 PIN (即一个更简单,方便输入的密码), 从而实现了安全性与便利性的平衡
请看图文说明: about-label.md
本软件的前身是 https://github.com/ahui2016/mima-web
我没有在原项目做版本升级,而是新开一个项目,是因为不仅有很多升级的地方,同时也有很多降级的地方,导致两个软件差别有点大。(旧版数据可导入新版)
以下把本项目称为“新版”,把 mima-web 称为“旧版”。
- 新版安装更方便,采用 Go embed 技术,只需要下载一个可执行文件,直接运行即可。而旧版需要安装 Go 语言环境进行编译。
- 新版有“信任IP使用PIN码登入”的功能,旧版没有。
- 新版前端采用了 mj.js 和 TypeScript, 更容易开发和维护。而旧版则是采用原始的 HTML+JQuery 方式。
- 旧版前端使用了 Bootstrap, 更美观(但没有 dark mode), 而新版采用 Simple.css, 自带 dark mode, 但我没做美化,采用比较原始的风格。
- 旧版后端未使用 web 框架,只使用标准库,而新版使用了 gin。
- 旧版后端未使用数据库(自己实现了一个简单的基于文件的数据库),编译速度快到离谱。新版使用了 sqlite, 编译速度受到 cgo 的影响而变慢,而且在 Windows 里编译也有点麻烦。
- 旧版有回收站,删除条目后可选择恢复或彻底删除。新版没有回收站,删了就是彻底删除。
Go embed 的好处是发布时一个文件包括一切,足够简单。
但由于静态资源都打包到可执行文件里了,在开发阶段每次修改前端的内容,都需要执行一次 go build 才能反映变化。为了方便前端开发,我弄了个 debug 模式:
mima.exe -debug
在 debug 模式下,修改前端的 HTML/JS 文件,不需要重新打包,不需要重启后端,只要刷新网页就行。(有时需要 Ctrl+Shift+R 强制刷新)
我已尽自己的能力最大程度地确保本软件的安全性 (因为我自己就是本软件的深度用户), 用户可免费使用本软件, 可自行审查本软件的源代码,但万一有什么泄密、删除数据、 造成直接或间接损失等, 我一概不负责任。 (使用别的任何密码管理软件, 即使是收费的, 他们也一样不会负责用户的损失.)
使用 gox 跨平台交叉编译时,由于本软件使用的 sqlite3 依赖 cgo, 因此需要添加 '-cgo' 参数,例如:
gox -osarch="darwin/arm64" -cgo -tags=nomsgpack