如果要评选人生中最大的烦恼,我觉得「忘记密码」绝对能获得提名。
我至今都记得旅游的时候在 40 度的户外要登录某 APP 扫码但是却忘记了密码的时候,我忍受着炎热和后面人的推搡狼狈地找回密码。

比这个更折磨的时刻是当我必须登录智慧团建办一些业务的时候。面对着一个已经好几年没见到过的网站,密码已经在我记忆里没有丝毫踪影。偏偏智慧团建的找回密码流程比较复杂,不仅要填写一些入团时的信息,还需要联系团组织干部获取一个验证码。为了找回我甚至去找了快 10 年没联系的初中团支书。

密码是每个人生活中的一大难题。对此,一般人的解法是全部网站使用同一个密码,或是用同一套规则生成密码(比如姓名+手机号+网站名称)。然而即使不考虑这样做造成的安全风险,由于各家网站对密码的要求不一样,这样的方法也不够实用。比如有的网站要求必须包含字母、数字之外的特殊符号,有的则不允许包含特殊符号。面对这种完全矛盾的要求,你怎么使用同一套密码或建立通用生成规则呢?
何况单一密码以及简单的生成规则造成的风险确实是极大的:只要有一个账号密码泄露,所有的账户都将沦陷。而且不要以为你的个人信息对黑客没有价值。要知道如今的网络攻击大多数是自动的,黑客们不停地扫描整个互联网,成批地尝试破解所有扫描到的账号。你可以将自己的邮箱输入到 Have I Been Pwned: Check if your email address has been exposed in a data breach 查询一下自己的邮箱名下是不是有账号曾被攻击泄露。比如我的优酷账号和密码就在 2016 年的一次攻击中被泄露了:

思来想去,可能用手机记事本记录账号密码是比较实用的方法。然而每次都打开密码本然后对着它逐字输入多少还是有点麻烦,尤其是碰上某些每次切屏都要看一遍开屏广告的软件更是折磨。此外,记事本是完全不加密的,密码本的安全性完全没有保障。
其实,密码问题早就有成熟的解决方案。我们其实只需要一个密码管理器 APP,就可以永远不再关心密码问题。本文致力于教你用最简单、安全的方法配置自己的密码管理器;看完之后你就可以从密码地狱中永远脱离了!
密码管理器
网上介绍密码管理器的文章,包括我之前写的那篇,都把密码管理器写得太复杂。其实密码管理器就相当于一个加密过的、可以自动识别网站、App 并且自动帮你输入账号和密码的智能密码本。有了密码管理器之后,你登录一个网站或者 app只需要两步:
- 点击账号密码自动填充
- 点击登录
这就意味着我无需关心某一账号的密码具体是什么,我只需要记住打开密码本的密码就可以登录我的任意一个账号。所以不论是多么常用的账号,我都可以生成一个 16 位随机密码伺候。比如这样的:VO!Fx~k/9)F[k{iC
、iAz;MVh#"zj{C7Zj$at>Q%;N
。
我们过去的单一密码或者固定规则生成的密码就像一个篮子里的鸡蛋,黑客只要攻破任意一个账号,就可以知道你用的单一密码或者猜出你的密码生成规则,进而危及你的所有账号。而通过密码管理器为所有账号设置随机密码就像一块顽石,黑客攻破每个账号都要付出同等的巨大代价。
市面上的密码管理软件有很多,我主要推荐这几个方案:
- Keepass 方案(电脑端 KeepassXC,手机端 Keepass2Android):安全、开源、完全免费
- Bitwarden 方案:安全、开源、易使用、免费套餐也很好用
- 1Password 方案:易用性最好,但是价格较高
在这些方案中,Keepass 方案是我自己真正使用的方案。这主要是因为Keepass的服务完全本地化,不依赖任何厂商的云服务。只有这样才可能规避厂商倒闭跑路带给我们的风险。
接下来我会给你一份全免费的 Keepass 最简配置方案。
KeePass 最简配置
KeePass 是一个完全免费且功能很齐全的密码管理器,而且软件源代码是开放给所有人的,保证了 KeePass 软件内部不会有任何后门威胁用户安全。
但是 KeePass 本身长得太丑,使用复杂,对普通用户不太友好。所以我推荐 KeePass 的衍生产品 KeePassXC 作为电脑端密码管理器。KeePassXC 可以在这个链接下载(支持 Windows、MacOS、Linux):Download – KeePassXC

手机端也有 KeePass 系列衍生产品,对于安卓系手机我都推荐 KeePass2Android。

这两个软件都是开源且完全免费的。如果你不方便自己去 Github 下载,也可以在后台回复「keepass」获取我帮你下载的安装包。
打开 KeePassXC 之后,选择创建数据库->新建数据库。KeePassXC 要求你创建一个新数据库,设置主密码(数据库凭据)。这个操作会为你创建一个 .kdbx
文件,这个文件就是所谓的数据库,即你的密码本。只不过这个密码本是高度加密的,不知道主密码的人得到了它也无法解开。
输入主密码,打开数据库,点击上面的+号,就可以新建条目了。一个条目就是一个账户,包含账号、密码以及其他信息。

用户名就是登录需要输入的账号,URL 用于告诉 KeePassXC 什么时候输入这个账号密码。在登录网站的时候,URL 是网址;在手机 APP 登录的时候,URL 则是应用包名。只要成功登录,KeePassXC 和 KeePass2Android 会为你自动填充。
点击密码栏右侧那个骰子🎲,可以打开密码生成器。我的随机密码就是在这里生成的。下面可以选择包含的字符类型以及调整长度,用于适配不同账号的密码要求。

熵值代表密码的信息量,越高越难破解。像这样的信息量高达 154 bit 的密码谁想猜就让他猜去吧,保证一猜一个不吱声。
记录密码之后距离让它为你自动输入账号密码还差一步:安装官方浏览器插件。点击抵达这个页面,选择你使用的浏览器版本即可:Download – KeePassXC

确保 KeePassXC 浏览器集成功能启用并且勾选对应的浏览器:

之后它会要求你生成一个密码并且复制到浏览器插件,和浏览器插件匹配密钥之后就可以使用自动填充了。点击账号密码栏右侧的 KeePassXC 图标即可:

手机端 KeePass2Android 基本遵循相同的步骤,也同样使用 .kdbx
文件作为密码数据库,也要主密码才能打开。不过要让它能在其他 APP 需要登录的时候自动填充账号密码,就需要点击设置->密码条目访问->自动填充服务,按照其指引将设置中的密码管理器设置为 KeePass2Android。

在 APP 内长按输入框,选择「自动填充」(autofill),就可以调出密码管理器输入密码了:

到这里,基本的密码管理器设置就做好了。但是我们还有一个问题没有考虑:如果手机或者电脑损坏,导致我丢失了数据库文件,我岂不是会一次性失去所有密码?
由于密码的重要性,密码长期可用是必须考虑的问题。幸运的是,对于这个问题,我们可以使用 321 方案。
321 方案
321 方案的概念来自于「321 原则」,这是软件工程领域的一个数据备份原则,用于防止出现数据丢失。
具体来说,321 是指:
- 3 个备份:密码本必须复制三份,作为三个备份
- 2 个介质:这三个备份要分散存储在至少两个不同介质上(比如手机/电脑、两个硬盘)
- 1 个异地备份:至少有一个备份和其他备份不在同一个地点
这样就可以有效防御几乎所有意外情况:
- 3 个备份:防备某个备份损坏
- 2 个介质:防备某个介质被毁,比如手机损坏、电脑损坏
- 1 个异地:防备某个地点出现灾难导致这个地方的备份全部被毁,比如发生火灾导致房间里的手机、电脑无一幸存
基于 321 原则,你可以尽情发挥想象力去制定自己的备份方案。我推荐的 321 方案是这样的:
- 备份 1:手机
- 备份 2:笔记本
- 备份 3:云盘(坚果云)
在电脑上下载安装坚果云之后,就会出现一个坚果云同步文件夹。将数据库文件(.kdbx
)置于其中:

记得右键文件,选择「保持离线可用」:

之后照常使用 KeePassXC 打开文件就好了。
手机端我比较推荐使用 WebDav 的方式访问密码数据库文件。首先在坚果云用户设置的安全选项中添加一个 webdav 程序,添加完之后你会获得一个密码:

然后在 Keepass2Android 中选择 HTTPS(WebDav),输入 URL 、账号和刚才的密码。URL 的格式是 https://dav.jianguoyun.com/dav/[文件路径]
。比如我将我的数据库文件保存在坚果云 我的坚果云/keepass.kdbx
下,那 URL 就是 https://dav.jianguoyun.com/dav/我的坚果云/keepass.kdbx
。

完成之后,我们就有了分布在三个不同介质下的三个备份,而且其中一个是远程备份,可以保证数据安全:
- 手机
- 电脑
- 坚果云服务器
严格来说,WebDAV 协议并不会将文件下载到本地,KeePass2Android 实际上是在直接打开坚果云服务器上的数据库文件。但是由于 KeePass2Android 默认会自动生成本地备份来保证断网的时候仍然可以使用密码,所以这种方案才可以被看作有 3 个备份。
如果只是通过 WebDAV 访问文件,而不生成本地备份的话,设备一离开网络你就将使用不了密码本。这种情况下是不能看作一个备份的。
不仅仅是密码,还包括所有的机密信息
经过上面的一通配置,我们做到了:
- 安全地存储密码(加密密码本)
- 安全地使用密码(自动填充或者查看密码)
- 密码永远可用(不会丢失)
这实在是一个伟大的壮举,就像在信息泄露的海洋中建立了一艘诺亚方舟。不只是密码,所有我们希望保密并且永远可用的信息都可以存入 KeePass 密码数据库中。
比如银行卡信息(卡号、密码等)、身份证照片、重要文件、各种个人信息都可以通过添加附件的方式加入到数据库中:

我作为运维用来访问服务器的管理员密钥:

如果你对日记私密性要求很高,绝不想被人发现,你也可以用它写日记:

总之,只是要是你想保密而且希望一直陪伴你的信息,你都可以保存进去。从此你们永不分离。
结语
密码管理器是迄今为止少数几个真正为我解决了大麻烦的 APP 之一。使用密码管理器之后,我的所有账号都被设置为了混合随机密码,我再也没有记忆过数据库主密码之外的任何一个密码。手忙脚乱地找回密码、担心数据泄露这种事情终于彻底离我远去了。这种安全感,正是数字时代最奢侈的财富。