背景
最近由于种种原因,我在各大站点注册了相当多的账号和密码,加上以前的账号,大概有百十来个。为了防止被撞库,我几乎不会在不同站点使用相同的密码,这样一来,想让我记住上百个账号密码是不可能的。我以前是记在手机的便签里,但是这样一来不安全,二来不能搜索指定密码,很不方便。市面上有很多优秀的密码管理软件,但由于我目前的密码记录已经有了自己的格式,无法直接导入,更何况我不愿意把密码记录在其他人的软件里,所以想找个方法来管理账号密码。
苦逼的是,我没有任何前后端开发经验,也不会做手机APP,真的很难想自己该怎么处理几百条账号密码,直到某次我上完厕所……
需求分析
能够直接导入或使用现有的记录的账号密码;
能够随时随地很方便地查看自己的账号密码;
自己的密码库需要认证才能访问;
能够查找到自己需要的账号密码;
能够方便地添加新密码。
资源准备
Nginx公网服务器一台
现有的密码库
具体思路
把账号密码放在自己的服务器上,使用https连接,并且使用Nginx设置访问认证,在web页面上查看自己的账号密码。使用浏览器的页内查找功能查找指定的密码。最后,使用一个小脚本,登陆服务器添加新密码。
实际操作
建立新的Nginx站点
在/etc/nginx/sites-enabled/
下添加新的配置文件example
:
1 | server { |
当然,你得有个ssl证书,如果没有的话,使用http……也无可厚非。
记得加上charset utf-8,gbk;
不然中文的支持不好。
这里的example.txt
即我自己以前记录的密码库。
然后配合Nginx的认证参数,使用sudo htpasswd -bc /var/www/example/auth.db test 123456
生成Nginx的认证用户名和密码。
设置权限
切换至/var/www/example/
下,我要确保我自己的密码不能让其他用户读取。
sudo chmod 660 example.txt
sudo chmod 660 auth.db
然后,为了能让自己修改密码库文件,把自己加入到root组。
sudo usermod -G root username
重新登陆。
制作添加密码的小程序
我用C++撸了一小段,凑合着用:
1 | //adk.cpp |
运行的效果是这样的:
1 | username@server:~$ ./adk |
此时,这一段信息已经附加到密码库后面。
页面效果
后记
还是觉得,太蠢太蠢。