参考资料：

[keepass安装与使用手记 - 少数派](https://sspai.com/post/106214)



### 下载与安装





此处推荐 **Portable** 版本的keepass，这样你可以把 **keepass** 的程序和数据放到指定的位置即可。然后再通过同步软件（例如你的NAS，例如网盘，例如onedrive等）同步到其它电脑上，或者你可以把 **keepass** 的文件夹整体复制到另外的地方就可以直接使用，非常方便。

### 安装插件

切换语言

[Translations - KeePass](https://keepass.info/translations.html)

将语言包`Chinese_Simplified.lngx`解压拷贝到`C:\Program Files\KeePass Password Safe 2\Languages`路径下

切换为中文：

重新打开程序（重启程序），点击显示(View)-选择语言(Change Language)

在弹出窗口中双击简体中文语言，完成切换



KeePass插件库：

[Plugins - KeePass](https://keepass.info/plugins.html)

1. - 将下载的插件文件（后缀为`.plgx`）直接复制到步骤3打开的【**Plugins**】文件夹中。
   - **若为ZIP包**：需先解压，再复制`.plgx`文件。

2. **启用插件**

   - 关闭并重新启动KeePass，插件自动加载。

**注意事项**：

- 插件需与KeePass版本兼容（部分插件仅支持1.x或2.x）。
- 部分插件需额外配置（参考插件官方文档）。
- 谨慎安装第三方插件，避免安全风险。



检查浏览器插件安装情况（检查下图中存在即可）

[Releases · smorks/keepassnatmsg](https://github.com/smorks/keepassnatmsg/releases)



**KeePassNatMsg**是在基于**KeePassHttp**插件的基础上发展而来，实现了一种通过本机消息传递机制（Native Messaging）将**KeePass**的凭据提供给浏览器使用的安全方法。

- 安装好**KeePassNatMsg**插件后，即可设置**KeePassNatMsg**的配置项，包括安装浏览器消息机，如下👇
   



- 
  👉特别的，如果你使用的是**Vivaldi**浏览器，你应该额外勾选〔**Chromium**〕，如下👇：
   



- 
  👉如果顺利，浏览器消息机安装成功应该收到如下的弹窗：
   



- 
  👉意外，如果你收到如下弹窗，说明你的网络无法连接到**gitHub**服务器，你可能需要科学上网：



[Releases · KeeTrayTOTP/KeeTrayTOTP](https://github.com/KeeTrayTOTP/KeeTrayTOTP/releases)

[WebAutoType download | SourceForge.net](https://sourceforge.net/projects/webautotype/)

这个插件可以让你在网页中唤出**Keepass**的添加记录对话框，它可以自动的帮你填入一些信息，例如**url**，例如标题等，如下👇：
 



👉你可以为**WebAutoType**设置中意的快捷键，如下👇：
 



[AutoTypeSearch download | SourceForge.net](https://sourceforge.net/projects/autotypesearch/)

如果**Keepass**未能自动匹配到密码记录，你可以通过本插件定义的快捷键呼出**Keepass**的搜索框，以便搜索你的密码库。

你可以在〔选项〕中对**AutoTypeSearch**进行有关设置，定义您的快捷键。如下👇
 

[Releases · mitchcapper/KPEntryTemplates](https://github.com/mitchcapper/KPEntryTemplates/releases)

当你在**Keepass**中添加一条密码记录时，默认情况下你应该看到的操作界面如下👇：



**KPEntryTemplates**模板插件可以让我们定义密码记录的录入字段和键入规则，以我们使用起来更加的方便。

虽然如此，但是在实际使用场景下，该模板的用武之地并不多，大家可以根据自己的需求决定是否添加了。

#### 在群组中启用模板功能

在数据库的常规组中启用模板功能，操作如下



#### 配置 用户名-密码 模板

**用户名-密码**模板用于记录通过**用户名**+**密码**进行登录的密码记录。操作如下👇：

- 选中〔常规〕群组，添加记录，设置标题和默认用户名，设置键入模式：
   



- 初始化并添加需要的记录字段：
   



- 于是，我们便得到了一个我们自定义的录入模板：
   



- 我们可以在我们新建记录时，使用该模板：
   



是不是比默认的录入模板要方便好用多了？

使用选项

实际上，我们的电话和邮箱一般来说都是有限的，也就是说我们常用的手机和邮箱也就那么几个，每次都要手动键入手机号和邮箱号未免麻烦了。**KPEntryTemplates**为我们提供了**ListBox**字段选项，对于〔手机〕和〔邮箱〕字段，我们可以按配置如下👇：
 



然后我们创建密码记录时，就可以选择〔手机〕和〔邮箱〕了，如下👇：
 



#### 配置 手机-密码 模板

**手机-密码**模板用于记录那些可以通过手机+密码登记的密码项目。操作如下👇：

- 选中〔常规〕群组，添加记录，设置标题和默认用户名，设置键入模式：
   



- 初始化并添加需要的记录字段：
   



- 于是，我们便得到了一个我们自定义的另一个录入模板：
   



- 我们可以在我们新建记录时，使用该模板：
   



#### 配置 邮箱-密码 模板

**邮箱-密码**模板用于记录那些可以通过邮箱+密码登记的密码项目。操作如下👇：

- 选中〔常规〕群组，添加记录，设置标题和默认用户名，设置键入模式：
   



- 初始化并添加需要的记录字段：
   



- 于是，我们便得到了一个我们自定义的另一个录入模板：
   



- 我们可以在我们新建记录时，使用该模板：
   



#### 作为补充

各个平台对于密码的要求千奇百怪，我们很难完全预料到所有的记录需求场景；或者如果尽可能的覆盖各种各样的排列组合的话，我们的模板将变得繁多又复杂，所以对于模板的设计，我们应该保持有所克制，抽取必要的，最大化的需求制作模板，而对于小众的，我们通过〔高级〕标签下的〔自定义字串段〕来添加额外的字段及对应值，如下👇：
 



[Releases · navossoc/KeePass-Yet-Another-Favicon-Downloader](https://github.com/navossoc/KeePass-Yet-Another-Favicon-Downloader/releases)



这个插件提供的是一个锦上添花的功能，它可以帮助我们🈯批量的把密码记录项的图标设置为对应**url**网站的**Favicon**图标，从而美华我们的密码记录项。

插件安装后，你可以进行一些必要的设置，如下👇：
 



然后选中你要更新图标的密码记录条目，右键，如下👇：

[KPSourceForgeUpdateChecker download | SourceForge.net](https://sourceforge.net/projects/kpsfupdatechecker/)



这是一个维护插件的插件。**Keepass**有着众多的插件，丰富的插件为我们提供了丰富的功能体验。但是这些插件是否有更新，我们无从得知；而**SourceForgeUpdateChecker**正是为了解决这个问题而开发的，它可以帮助我们检测我们所使用的插件是否有更新，以便我们可以及时的更新我们的插件，及时的体验新的功能和修复程序漏洞。

插件安装完成后，**重启 Keepass**，即可以通过〔帮助〕/〔检查更新〕来查阅各插件是否有更新版本，如下👇：

[Download KPEnhancedEntryView](https://sourceforge.net/projects/kpenhentryview/files/latest/download)

**KPEnhancedEntryView**插件可以使我们更方便的使用**Keepass**，它允许我们👇：

- 记录内容分类展示
- 在主界面直接编辑修改字段的值
- 添加额外的字段
- 通过快捷键**F9**在主界面显示/隐藏密码值
   



为了达到使用**KPEnhancedEntryView**的最佳效果，请在〔工具〕/〔列设置〕中只保留显示〔标题〕和〔用户名〕两个，如下👇
 



食用效果如下👇

在下载完毕后：

- 更改你的密码库密钥：〔文件〕/〔更改管理密钥〕
- 调整同步配置（坚果云配置），参考下文相关章节
- 安装浏览器插件并完成配置，参考下文相关章节
- 你需要确认几个快捷键：
  - 自动填充全局快捷键，见〔工具〕/〔选项〕/〔集成〕
  - 自动填充密码全局快捷键，见〔工具〕/〔选项〕/〔集成〕
  - WebAutoType插件的创建记录快捷键，见下👇

如果你在使用Windows10，建议将keepass数据库直接存储在OneDrive文件夹中。因为OneDrive已经集成到了Windows文件资源管理器中，而且OneDrive网页版可查看**文件版本历史记录**和回收站，即使操作失误或误删文件也有补救的余地。

所以综合安全性，易用性，跨平台等多方面因素，建议使用【管理密码】+【密钥文件/提供器】的加密方式。其中【密钥文件/提供器】可使用任意类型文件（图片，文档，音频，视频等），它的工作原理是使用SHA-256对密钥文件进行哈希处理并将生成的32个字节用作密钥，因此**请妥善保存密钥文件，不要随意修改**（重命名无影响）。



#### 安装浏览器插件 

KeePassXC Edge浏览器插件

[KeePassXC-Browser - Microsoft Edge Addons](https://microsoftedge.microsoft.com/addons/detail/keepassxcbrowser/pdffhmdngciaglkoonimfcmckehcpafo)





KeePassXC 是一款现代化、安全且开源的密码管理器，能够存储和管理您最敏感的信息。

它可以通过**KeePassNatMsg**查询使用**Keepass**中的密码数据。

👉插件安装完成后，点击插件图标，即可设置与**Keepass**的连接，在**Edge**浏览器中的设置过程如下👇：



👉我们可以在浏览器中配置**KeePassXC-Browser**的填充快捷键，如下👇：
 



👉然后，当你浏览网页时，如果**KeePassXC-Browser**检测到有匹配的密码输入场景时，便会添加**KeePassXC-Browser**标识，只需要鼠标一点就可以自动填充了。如下👇：

👉相反，如果某一个网页中存存密码输入场景，但是未检索到有效的密码记录时，**KeePassXC-Browser**会显示灰色的图标，如下👇：





创建数据库（kdbx）

**Keepass**的密码数据存储与数据库文件（.kdbx）中，所以我们在使用**Keepass**前，需要首先创建一个用于储存与管理密码的数据库。

- 新建数据库，如下👇
- 然后，我们为我们的数据库设置打开密码，也可以指定另外两种保护方案，如下👇

D:\文档\Keepass\mydatabase.kdbx

- 👉如果你使用电脑的习惯规范（设置登录密码，并在离开时全胜**Win+L**锁定），单独使用〔管理密码〕或者〔密钥文件〕已经足够了。
- 👉我个人是单独使用〔密钥文件〕的，更为方便.D:\文档\Keepasskey\mydatabase.keyx
- 👉密钥文件就是一个普通的文档而已，你可以选择现有的一个文件，也可以根据**Keepass**的引导创建一个新的文件。
- 👉密钥文件建议不要与**Keepass**的数据库文档放在同一位置或者关联位置
- 👉密钥文件可以重命名，但不可更改其内容
- 👉密钥文件建议云端同步，避免丢失
- 👉在存放密钥文件的位置，建议存放一些其它的文档，起到混淆作用
- 设置数据库名称（不是数据库文档名称），如下👇





**Keepass**的全局热键可以使用户在非**Keepass**窗口中，也可以唤出**Keepass**进行键入操作。例如当你在浏览器中时，通过全局热键，就可以唤出**Keepass**录入用户名和密码。

**Keepass**的全局热键可以在〔工具〕/〔选项〕中设置，如下👇



### Keepass的匹配原理

当用户在某一个应用程序中触发**Keepass**的全局热键后，**Keepass**会获取当前应用的标题，然后在数据库中查找应用应用满足要求的记录。并将这条记录键入到目标应用的输入框中。那么，什么样的记录算是满足要求的记录呢？这是在**Keepass**的〔工具〕/〔选项〕中设置的，如下👇：



所以，我们在创建密码记录时，需要考虑到**Keepass**的匹配机制，以便**Keepass**可以准确的找出我们需要的密码记录。例如你为百度账户创建密码记录时，如下的设置将更容易在百度各应用/平台上检索到本条密码记录：





### 键入规则

**Keepass**的默认自动键入规则为{USERNAME}{TAB}{PASSWORD}{ENTER}，解释如下👇：

- {USERNAME} 表示输入输入用户名
- {TAB} 表示输入Tab键，表现行为是切换输入框
- {PASSWORD} 表示输入密码
- {ENTER} 表示按下回车键

这个默认的输入行为，并不适合所有的用户。例如对于中文用户而言，在输入用户名和密码前，需要先切换输入框到英文状态，然后再启动输入动作，另例如对于有些页面或者应用程序（如QQ），则需要在输入完用户名密码后，要勾选用户协议方可进行登录。针对这些情况，本人使用的输入规则如下👇：
+{DELAY 100}{CLEARFIELD}{USERNAME}{TAB}{PASSWORD}+ 或者
^{SPACE}{DELAY 100}{CLEARFIELD}{USERNAME}{TAB}{PASSWORD}^{SPACE}

解释如下👇：

- **+** 表示输入Shift 键（对于Windows用户而言，Shift键用于切换输入法状态
- {DELAY 100} 表示等待100毫秒，输入Shift后停顿一下，等待系统响应
- {CLEARFIELD} 表示清空输入框，用于清空当前所在输入框的贼内容（第一个输入框是〔用户名〕输入框）
- {USERNAME} 表示输入输入用户名
- {TAB} 表示输入Tab键，表现行为是切换输入框
- {PASSWORD} 表示输入密码
- 最后一个 **+** 号，表示在完成键入后，将输入法状态还原

注意点如下👇：

- 这条规则最后没有了{ENTER}，最后的 Enter键由用户在勾选了用户协议后（如果有）再按下。
- 光标位置〔用户名〕输入框内时，确保输入法状态为**中文**，然后再启动**Keepass**
- 如果你发现在键入时，输入法没有能成功的切换中英状态，你可以试一下把 **+** 换成 **^{SPACE}**，其中 **^** 表示 **Ctrl** 键，**{SPACE}** 表示空格键，这个组合可以切换输入法与非输入法。但需要使用哪个按键组合，需要根据你的电脑的相关设置而调整，如下👇：



关于〔双通道自动输入混淆〕

**Keepass**在键入用户名和密码时，是通过模拟按键进行键入的，那么如果你的电脑已经中毒，中了木马，他可以监视并获得你通过键盘键入的字符，那是不是**Keepass**键入的内容就被这个木马截获了？为了应对这个场景，**Keepass**支持在键入操作时，引入剪贴板渠道。意思就是说，**Keepass**将要输入的内容随机的截成n段，其中一部分通过模拟键盘键入，另一部分先放入粘贴板，然后再通过**Ctrl+V**粘贴到输入框中，这样木马程序只能观察到使用了**Ctrl+V**操作，但无法得知粘贴的内容，从而提高了密码键入的安全性。我们可以在创建密码时，在〔自动输入〕标签下的下方看到〔双通道自动输入混淆〕选项，如下👇：

👉注意，双通道键入模式，需要输入框支持**Ctrl+V**操作，并要求支持光标移动操作，但这两个操作并不是所有的平台的密码输入框都默认支持的，所以在使用〔双通道自动输入混淆〕功能时，请确保目标平台的密码框是支持以上操作的。



### 密码生成

当我们注册某一账户时，需要生成一个新的密码以供使用，**Keepass**在创建新的记录时，会自动的生成一个新的密码以供我们注册时使用，如下👇：



这是一个20位的由数字和字母组成的随机密码，但是并非所有的平台都支持20位这么长的密码长度，也有很多的平台要求密码必须包含特殊字符，所以这个随机密码的适应性不能满足一些要求。我们调整随机密码的生成规则如下👇：

### WebDav(坚果云网站同步)

在电子设备普及的今天，几乎每个人都不止一个电脑+手机。如何在这么多的设备上共享密码信息呢？这里我们分享一个通过webDav同步**Keepass**数据库的方法，该方法来自来自Keepass：多平台密码无缝同步。

准备坚果云
首先，我们需要有一个坚果云账号（免费的就行），您可以👉在这里注册
然后，你需要在坚果云空间里创建一个〔keepass〕文件夹，如下👇


然后，把你本地的Keepass的数据库文档（.kdbx文档）上传到这个坚果云的〔keepass〕文件夹内，如下👇

然后，在坚果云上添加一个〔keepass〕应用，记下你的应用地址、账户名称和应用密码。如下👇


坚果云端完成以上设置即可。

使用Keepass触发器触发webDav同步
按下图修改下面的Keepass触发脚本，然后复制修改完成后的脚本文本备用




复制了触发器脚本后，将触发器配置到Keepass中，如下👇


然后在Keepass界面按下Ctrl+S键，在Keepass下的状态栏中应该能看到webDave的同步过程及结果，如下👇


关于连接，用户名，密码，也可以后期再调整，如下👇：




### 

### **6）其他概念**

替代URL：使用指定的应用程序（浏览器）打开URL。

TAN (transaction authentication number)：一次性验证码，通常在启用网站两步验证的同时会提供多个备用验证码（TAN）。keepass中每条TAN用过后会打上╳并注明失效日期，非常实用。

- 技巧：

1. 由于TAN记录的标题不能自定义，因此建议为每个账户的TAN记录单独创建一个群组，这样不容易混淆；
2. 在添加TAN时勾选【序号连续，开始于】，这样创建的每条TAN会有一个序号，以便识别和使用。

- 添加方法：创建一个新群组（推荐）→点击群组→【工具】→【TAN 向导】。

## 321 方案

321 方案的概念来自于「321 原则」，这是软件工程领域的一个数据备份原则，用于防止出现数据丢失。

具体来说，321 是指：

1. 3 个备份：密码本必须复制三份，作为三个备份
2. 2 个介质：这三个备份要分散存储在至少两个不同介质上（比如手机/电脑、两个硬盘）
3. 1 个异地备份：至少有一个备份和其他备份不在同一个地点

这样就可以有效防御几乎所有意外情况：

1. 3 个备份：防备某个备份损坏
2. 2 个介质：防备某个介质被毁，比如手机损坏、电脑损坏
3. 1 个异地：防备某个地点出现灾难导致这个地方的备份全部被毁，比如发生火灾导致房间里的手机、电脑无一幸存

基于 321 原则，你可以尽情发挥想象力去制定自己的备份方案。我推荐的 321 方案是这样的：

1. 备份 1：手机
2. 备份 2：笔记本
3. 备份 3：云盘（坚果云）

TOTP

[(26 条消息) 动态令牌是怎么生成的？（OTP & TOTP 简单介绍） - 知乎](https://zhuanlan.zhihu.com/p/484991482)





参考资料

[keepass安装与使用手记 - 少数派](https://sspai.com/post/106214)

[Keepass：多平台密码无缝同步 - xututu6 - 博客园](https://www.cnblogs.com/xututu6/p/18646095#33-设置-webdav-权限)
