· 中文· English
互联网时代,账号密码太多,之前的方法是保存在一个记事本中。但缺乏安全性,搜索也不方便。
市面上有不少密码管理工具,但都需要服务器。但密码这种敏感信息,存在别人服务器上总感觉不放心。
心想基本功能只是一个加密存储和搜索,实现起来应该不难,于是自己参考1password做了一个。
目前功能尚不完善,我会在使用过程中不断优化。大家也可以试用一下,有什么建议可以提。
我的目标目前很简单:
1、只个人使用,不搞什么分享,协作这些复杂的完意
2、不要服务器,只提供网盘备份和恢复功能。自己的数据自己掌握
1、类似1password的双密码机制:主密码(用户自己记住)+key(软件生成长度为25的随机密码)
2、机密信息使用aes-256-cbc加密算法。密钥是 sha256(主密码+key)
3、数据存在本地,使用sqlite数据库
- 双密码机制: 主密码和25字符的key(软件生成)组合成超强密码1.AES数据加密: 本地存储的敏感信息通过aes-256-cbc进行加密存储
- 多种密码信息支持: 登陆信息、银行卡信息、笔记信息的保存
- 保险库功能: 将不同的密码信息分类保存
- 多账号功能: 软件可以切换不同的账号(这样你可以将你父母的你自己密码信息隔离保存,因为不同账号主密码可以不同)
- 随机密码生成工具: 再也不用担心密码不够安全,不符合网站的需求。工具帮你随机按需生成密码
- 键盘自动输入: 通过快捷键呼出密码快捷搜索窗口,选中后,自动输入账号密码
- 多语言支持: 支持中文和英文的快速切换
- 本地备份文件的导出和导入: 可以将个人信息保存成zip文件,同时也可以导入此备份信息。
- 云盘备份和恢复: 可以将软件数据保存到云盘,或者从云盘上恢复相应的备份。(目前只支持阿里云盘)
- csv导入和导出: 可以导入chrome或者edge浏览器导出的csv密码文件到软件中,也可以导出软件的密码信息成csv
- 修改主密码: 可以方便的修改主密码(注意备份)
- 程序自动更新: 支持从github上更新最新版本1.开机自启动
- 系统锁定,软件也锁定
git clone https://github.com/ftyszyx/lockpass.git
npm install
npm run dev
electron-builder github 其实打包流程就是 electron vite先把main render preload下的脚本用vite打包到out目录下 然后electron-build把资源打成asar
-
程序更新机制(完成) https://www.electron.build/auto-update electron-builder的功能的确强大,做的很好,点赞
-
Linux 打包异常问题(完成) snap打包好像需要签名文件。 目前先把snap去掉。
snapcraft internal error: NoKeyringError('No keyring found to store or retrieve credentials from.')
-
覆盖安装不要把配置文件删除(完成) 之前为了开发方便,把程序生成的用户文件和配置放在应用程序当前目录。 但目前主流的做法是把这些配置文件放在系统划分的用户目录 windows下是%appdata% 这样的话,就不会有上面的问题了,因为配置和程序存储的位置分开了。 而且也不会有权限的问题。
-
修改主密码(完成)
-
切换语言(完成)
-
跟随系统锁定(完成)
-
开机自启动(完成)
-
新加入的账号信息,快捷搜索不到
-
快捷搜索的快捷键改成 ctrl+shift+q
-
新增的一个密码后,页面要能选中该密码(完成)
-
选中密码项时,选中项要居中(完成)
-
vault_item增加一个字段表示创建时间,兼容老版(完成)
-
新增密码的弹窗,在点Outsize区域不要关掉(完成)
-
锁定页面打开时应该定位到密码输入框(完成)
-
增加软件窗口隐藏的快捷键ctrl+shift+down(完成)
-
备份到阿里云盘时可以自定义名字(完成)
-
可以删除阿里云盘的备份(完成)
-
有修改没有备份时在窗口下方加个日志,或者项目右上角加个红点,表示有修改(完成)
-
密码库页面增加方向键控制和选中效果(完成)
-
增加本地快捷键的映射ctrl+f ctrl+j(完成)
-
自动输入时需要将输入法切成英文(完成)
-
可以修改密码所属的保险库(完成)
-
修改密码信息后,快捷搜索页没有更新(完成)
-
增加密码时,选择密码类型也增加键盘方向控制(完成)
-
优化软件更新逻辑(完成)
- 解锁后软件的title不对(完成)
- ctrl+f和ctrl+j优化(完成)
-
更新软件的描述显示优化
-
新增一项后,显示的是空的(解决)
-
快捷查看页面的快捷键失灵了(解决)
-
密码项显示创建时间,并按照时间排序(解决)
-
窗口的大小缩放后可以记住(已完成)
-
快捷窗口每次打开要清除之前输入的内容(完成)
-
qq密码无法输入问题(完成) 原因是: 之前输入密码是使用unicode的方式,qq密码框有限制。 现在改成虚拟键盘的方式,改了一点robotjs的代码,只支持windows
找到了官方的库:https://github.com/googleapis/google-api-nodejs-client 按照要求安装
npm install googelapis
然后写了点代码,准备测试下,发现npm run dev变慢好多。 我还以为我电脑出问题了,把进程清了,再试,还是好慢,看了下输出 好家伙
✓ 2845 modules transformed.
out/main/index.js 18,416.85 kB │ map: 32,444.83 kB
✓ built in 19.16s
vite 编译花了19s,这个main脚本有18M,好吓人。 我回看了一下修改记录,觉得除了加了一个google api的库,没有其它的。 我把google api这个库删除
npm uninstall goolgeapi
再运行一下,果然,编译只用时1s,大小只有700k
✓ 444 modules transformed.
out/main/index.js 741.03 kB │ map: 1,421.00 kB
✓ built in 1.16s
google你就不能把代码分几个模块啊,真是服了。
-
窗口显示当前拉取的备份信息(完成)
-
云盘第一次登陆后,自动恢复请求(之前第一次操作网盘,会登录验证,然后需要再操作一次,现在不需要了)
-
云盘操作时加加载圈效果(完成)
-
软件内链接需要使用系统浏览器打开,现在是在软件内打开(完成)
-
百度和goolge网盘备份功能(放弃)
百度网盘创建应用需要企业,放弃
google api库太大了,不搞了,另外redirect url不支持deeplink
- ctrl+f 后就不能ctrl+j了 原因:ctrl+f后焦点在input,导致快捷键不生效 处理:增加esc键的处理,当焦点在input时,esc可以取消input的foucus
- 通过ctrl+1和ctrl+2来控制子窗口间切换
- 然后可以通过键盘的上下来控制菜单 的移动
- 快捷搜索窗口点esc关闭
- 因为没有mac测试环境,程序正确性无法验证,打包只打windows包
- 设置页面增加打开调试窗口功能
- 处理window setsize异常报错的问题。会导致quick search窗口无法正常缩放
- 多窗口时,自动输入时有问题。因为获取的坐标是错的。
## 2024/11/21
- 支持头像图标的自定义上传
qq: 2246855973
qq群: 572194495