唐怀瑟之门 - 密码
type: channel
link: https://blog.yr1044.eu.org/index.php/tag/%E5%AF%86%E7%A0%81/
items: KeePass 2 开源密码管理工具

KeePass 2 开源密码管理工具
type: item
date: 2023-05-25T11:38:00+00:00
description: KeePass 2 开源密码管理工具官网https://keepass.info/为什么写此篇文档为了将如此功能强大的软件分享给更多人，但网上铺天盖地的教程文档大多数都是搬运SMZDM上的文章 （ps:原文写的确实好），笔者在使用多年后总结了一些坑和小技巧，同时也为了便于笔者自己日后装机时折腾起来更方便，记录下此篇文档。本文后续会持续更新，各位读者如有建议或经验见解也请留言讨论。我们为什么要是使用密码管理工具？我们需要在各个网站、平台、数据库、服务器等地方设置密码，很多人的习惯是使用相同、简单、有规律的密码，简单有规律的密码会导致你的账号很容易被暴力破解，相同的密码会受撞库攻击的影响。因此最安全的策略是每个网站使用不同的、纯随机的密码，然而这就会导致我们记不住任何一串密码，此时一个安全的密码管理工具就可以解决这些痛点。为什么选择 KeePass 2?市面上有很多种密码管理工具，而笔者最关注以下需求：安全性（重中之重）开源免费或一次性买断制收费纯本地离线或支持自建服务端跨平台支持自动填充支持两步验证、SSH Agent经过筛选之后就剩下KeePass 2和它的衍生KeePassXC可以满足需求，并且还支持双通道自动输入混淆以及内存保护等功能来提高安全性。那么这两者有什么区别呢？前者的优点是插件扩展性强，可自定义选项更多，而后者则有着界面美观、人性化功能更多、开箱即用的优势。经过反复比较，笔者发现截至2023-05，KeePassXC在以下方面还是存在明显问题：如果你的数据库中存入了多个SSH密钥，在使用SSH Agent功能时并没有提供一个可选的密钥列表，而是由终端程序去挨个尝试，这就会触发服务端设定的最大重试次数限制，导致此功能几乎处于不可用状态。如果勾选了最小化程序后自动锁定数据库，同时又使用了Windows Hello解锁，此时由浏览器插件发起解锁数据库请求，解锁后的程序界面默认是最小化的，但程序逻辑却错误地再次将数据库锁定，属实是混乱综上所述，笔者目前更推荐使用KeePass 2 2.53.2及以上版本(已知的安全漏洞全被修复)搭配各种插件作为主力密码管理工具，如果读者有其他更推荐的解决方案也欢迎留言补充。推荐的手机APP安卓 KeePass2AndroidIOS KeePassium使用和设置一些概念数据库：一个密码仓库，包含多个群组（密码本），数据（用户名、密码、网站组成的一个对象）数据库密码：整个仓库的主密码密钥文件：和密码一起存在才能解锁数据库，一般不建议和数据库文件存储在同一个目录，最好能隐藏起来或者放在移动设备中（但实际使用不现实，在能力范围内尽量保护好吧）一些坑unix系安装时不建议使用wine+windows版的模式，此模式无法正常调用部分系统API不建议使用Windows账户作为数据库加密方式推荐使用移动版程序汉化打开官方的翻译页面，下载语言文件放置于程序安装目录的Languages目录下打开程序，选择菜单栏 View -> Change Language，选择简体中文并重启软件自定义翻译打开官方的翻译页面，找到页面最下方的翻译工具下载地址，下载后打开已有的翻译文件，即可在原有基础上定制自己的翻译内容请自觉尊重并保护原译者的版权信息，不要恶意盗用他人的翻译成果，若想对翻译工作做出贡献请联系原译者触发器KeePass 2 自带了一套功能强大的触发器系统，可以实现一些脚本化功能，但由于触发器是作用于程序维度而不是数据库维度，因此触发器的规则是明文存储在配置文件中的，不建议在触发器中存储密码、密钥文件位置等关键信息设置WebDav/FTP同步数据库目前同步有两种方式1：本地数据库 + 触发器 实现每次保存本地数据库后同步一次远程数据库2：直接打开远程数据库进行操作方式二简单粗暴，且移动端程序想使用同步数据库，一般都是使用方式二，但方式二的致命缺陷是离线状态下无法打开数据库，而方式一由于本地也维护了一份数据库，因此可以在离线情况下正常工作，待联网后即可再次保存数据库触发同步（手机客户端一般会在本地缓存一份数据库，实际采用的还是方式一）。更进一步，本文推荐的方式是使用程序自带的触发器功能，通过 WebDav 协议同步一个数据库到本地，每次程序读取次文件云端另一个目录/同步服务，存放一个备份数据库且默认不同步到本地，每次程序保存时同步一次备份数据库，实现双端备份可选：通过插件实现每次保存数据库后保留一个历史版本到一个历史备份目录，实现自定义版本控制，本文后续会介绍这里以坚果云 WebDav方式为例，首先你需要注册登录坚果云账户，创建一个同步目录，这里命名为 KeePass_Sync，并将你的数据库文件提前上传到此目录在坚果云安全选项中的第三方应用管理下方点击添加应用，名称自定如KeePass，然后点击生成密码，此时…