前言
早期互联网世界里,账号密码几乎是保护数字资产的唯一手段。但记忆密码本身违反人性,因此绝大多数人在不同平台使用相同的账号和密码。即便某个平台有特殊复杂度要求,也无非是在主密码前后加上 a、A、@ 等字符稍作变化,本质上仍基于同一个主密码。这种做法给“撞库”攻击提供了可乘之机。例如,国内某知名技术平台曾使用明文存储用户密码,并发生数据泄露。如果你恰好注册过该平台,且用户名和密码与其他平台一致,那么你的其他数字资产便等同于完全暴露。
平台处理用户数据的方式我们无法干预,所以我们需要确保每个平台的账号密码互不相同。但记忆多组密码又很困难,因此借助密码管理工具来代劳,就成了最合理的方案。
历史
花密
我使用密码管理软件的时间不算很长。最早接触到的相关工具,是在异次元软件网站上看到的花密。它通过一个固定算法,要求用户输入主密码和平台唯一标识,然后生成一个高复杂度的密码——不同标识生成不同密码,从而避免重复。但实际体验下来,每次登录都需要打开工具计算密码,对于高频使用场景来说非常繁琐。
KeePass
后来,同样在异次元上我了解到KeePass。它在密码管理领域堪称老前辈,自 2003 年发布至今仍在迭代,几乎能满足所有密码管理需求。但它也有一些难以回避的缺点:
- 无原生云同步:密码存储在本地的 kdbx 数据库文件中,官方未提供同步功能,需要借助坚果云等第三方网盘手动同步。
- 仅官方支持 Windows:官方至今只发布 Windows 版本。好在 KeePass 开源,社区衍生出多个分支,例如 KeePassXC 提供了 Windows、macOS、Linux 及 Web 版本,界面也更美观。此外,还有众多第三方项目覆盖 Android 和 iOS 等移动端。
关于 KeePass 的生态,你可以参考这个收集项目:https://github.com/lgg/awesome-keepass
虽然通过“坚果云 + KeePassXC + 移动客户端”的组合可以实现全平台使用,但配置过程较为繁琐。而且多端修改时若同步不及时,容易产生冲突,kdbx 的冲突处理不像文本代码那样直观,需要手动打开两个冲突文件进行合并,操作成本较高。
Microsoft Authenticator
前几年,一些技术社区和平台陆续开始支持 OTP(一次性密码)双因素认证。起初我不太了解 OTP,后来发现它无需依赖短信(当前个人开发者使用短信服务门槛较高),甚至不依赖网络即可完成身份校验,于是决定为所有支持 OTP 的平台开启该功能。
考虑到国内网络环境,我在 Google Authenticator 和 Microsoft Authenticator 之间选择了后者。同时我使用微软邮箱,用微软验证器登录微软服务也更方便。
使用约一年后,我换了新手机,在新设备上安装了 Microsoft Authenticator 并登录微软账号,发现 OTP 列表为空。接着查看旧手机,列表也变空了。搜索后才发现这不是个例(参考 被 Microsoft Authenticator 坑惨了,所有 2FA 全丢了),许多用户在新设备登录时都遇到了相同问题。
根据大家的反馈,结合自身经历,问题出在:新设备登录时应选择“恢复”而非直接登录账号,点击恢复后再登录才能同步云端 OTP 数据;如果直接登录,新设备的空列表会覆盖云端数据,进而导致旧设备上的 OTP 也丢失。
更麻烦的是,即便按“恢复”操作,仍有部分用户报告数据丢失。微软的同步逻辑难以捉摸,经历了这次事故后,我不敢再依赖微软验证器。
替代品
既然微软验证器靠不住,我需要找一个替代方案。恰巧此时我几乎所有平台的密码仍相同,所以目标从单纯的 OTP 工具转向全功能密码管理器。
我评估了 1Password、LastPass、Enpass、Bitwarden 这几个行业主流产品。它们在基础功能上差别不大——账号密码管理、自动填充、密码生成器、OTP、通行密钥、全平台同步等一应俱全。主要差异在于性价比和安全性:
- LastPass 已多次泄露用户数据,数据库几乎成了公开信息,为了安全直接排除。
- Enpass 在 2019 年 11 月前采用买断制,之后转为订阅制。它最大的特色是不提供自带云同步服务,只开放同步功能,允许用户通过主流网盘或 WebDAV 自行同步。
- 1Password 功能全面,但订阅价格较高(现为 $47.88/年)。
- Bitwarden 综合下来最适合我,年费 $19.80,功能齐全,且尚未出现大规模安全事件。因此从 2023 年起,我一直使用 Bitwarden 管理密码。
Bitwarden
2023 年刚开始使用 Bitwarden 时,我订阅了官方服务,一年约 70 元人民币,价格合理。但使用一年后发现,由于网络问题,同步服务连接不太稳定,不过数据从未丢失。
基于网络体验,到期后我没有续费官方服务,而是选择在个人博客服务器上用 Vaultwarden 搭建了一套开源 Bitwarden 服务端。Vaultwarden 与官方服务端的区别在于不支持企业功能,但对个人用户的核心功能均完整兼容。
有趣的是,依托开源生态,你可以完全不依赖 Bitwarden 官方托管服务,而使用自托管的 Vaultwarden 作为服务端,同时仍然使用官方客户端或第三方客户端(如 Keyguard)。这种模式下,Bitwarden 更像一套“开源的密码管理器规范”,任何遵循该规范的项目都可融入生态。
我的具体部署方式:通过 1Panel 面板的应用商店安装 Vaultwarden,然后利用坚果云定期同步 Vaultwarden 的备份数据文件。即便博客服务器数据丢失,也能从坚果云恢复。
随机密码
随机密码是密码管理器最基础的功能。尽管互联网巨头们正逐步淘汰传统密码,但许多平台仍将其作为主要认证方式之一。因此,我为每个平台生成一个极高强度的随机密码,既基本杜绝暴力破解,也确保某平台明文泄露时不会波及其他账户。
OTP 验证码
目前国内技术论坛、云服务商对 OTP 的支持日益完善,登录不再依赖短信验证码。配合 Bitwarden 的自动填充,登录体验非常流畅。

通行密钥
通行密钥(Passkey)与 Bitwarden 的结合堪称绝配。通行密钥完全抛弃了账号密码输入,直接通过本地存储的密钥证书验证身份,但缺点是需要每台本地设备单独添加一次。而 Bitwarden 可以代理浏览器的通行密钥请求——无论使用何种设备,只要同步了 Bitwarden 数据,即可调用 Bitwarden 完成验证,一键认证成功,且安全强度远超传统密码。

邮箱别名
使用 Bitwarden 后,我才了解到邮箱支持“+”别名功能。生成用户名时可自动生成别名,例如 dbkuaizi+csdn@hotmail.com。微软邮箱收到该地址的邮件时会自动转发给 dbkuaizi@hotmail.com。这样,一旦收到垃圾邮件,我就能通过后缀快速识别是哪个平台泄露了我的邮箱。
遗憾的是,国内的 QQ 邮箱、163 邮箱大多不支持此功能,目前较为便捷的选择是微软邮箱。

SSH 代理
SSH 代理是我写这篇文章时才注意到的功能。传统方式下,SSH 密钥默认存放在本地,并假设使用环境绝对安全。但随着供应链攻击事件增多(例如 Apifox 事件),本地应用可能恶意收集并上传 SSH 密钥,导致 Git 仓库或生产服务器被入侵。
开启 Bitwarden 的 SSH 代理后,所有读取 SSH 密钥文件的操作都必须经过 Bitwarden 授权,未经授权无法读取,有效提升了密钥安全性。
使用技巧
添加登录信息
注册新平台时,可先在 Bitwarden 中创建一条账号记录并生成随机密码,然后在注册页面直接使用 Bitwarden 的自动填充,省去手动输入的麻烦。
选择合适的托管方式
如果你没有独立服务器,或者不想自行维护服务,可以考虑直接订阅 Bitwarden 官方服务(个人免费版功能已足够日常使用,付费版增加高级功能)。若希望自托管且具备一定技术能力,使用 Vaultwarden 搭建也是非常不错的选择。官方 Bitwarden 客户端支持自定义服务器地址,方便切换至自托管实例。请根据自身需求和网络环境,选择最稳妥的方案。
本文由两双筷子撰写,并利用 DeepSeek 对排版与语句进行了优化。