如何使用 PGP

要使用 PGP,您需要生成一个密钥对(一个公钥和一个私钥),将公钥分享给您想要通信的人,导入他们的公钥,然后使用这些密钥来加密、解密、签名和验证消息。PGP 加密确保只有预期的收件人能够阅读您的消息,而数字签名则证明消息确实来自您。像 KeychainPGP 这样的工具通过基于剪贴板的工作流使这个过程变得简单——无需命令行操作。

本 PGP 教程将引导您完成每一个步骤,从生成您的第一个密钥对到收发加密消息。如果您对公钥密码学的概念还不熟悉,建议先阅读什么是 PGP?PGP 入门指南


开始前的准备

在使用 PGP 加密第一条消息之前,您需要一个 PGP 应用:

  • KeychainPGP 网页应用——在任何现代浏览器中打开在线 PGP 工具。所有操作通过由 Rust 编译的 WebAssembly 在本地完成。无需安装、无需账户,数据不会发送到任何服务器。
  • KeychainPGP 桌面应用——从 GitHub releases 页面下载 Windows、macOS、Linux 或 Android 原生应用。桌面应用增加了全局快捷键、系统托盘集成、自动清除剪贴板和 QR 码同步功能。
  • KeychainPGP CLI——keychainpgp CLI 提供密钥生成、加密、解密、签名、验证和密钥环管理命令。非常适合脚本和自动化。
  • GnuPG (GPG)——传统的命令行工具。功能强大但需要熟悉终端。参见PGP 与 GPG 的区别了解详细对比。

提示:如果您只想立即尝试 PGP 加密而不安装任何软件,请打开在线 PGP 工具并跟随本教程操作。


第一步:生成 PGP 密钥对

一个 PGP 密钥对由两个数学相关的密钥组成:

  • 公钥——您可以自由分享。任何人都可以用它来加密发给您的消息或验证您的签名。
  • 私钥——您必须保密。它用于解密用您公钥加密的消息和创建数字签名。

在 KeychainPGP 中生成密钥

  1. 打开 KeychainPGP(网页应用或桌面应用)。
  2. 导航到密钥选项卡。
  3. 点击生成新密钥
  4. 输入您的姓名和电子邮件地址。
  5. 点击生成。KeychainPGP 将创建一个 Ed25519 + X25519 密钥对——OpenPGP 中最现代、最安全的算法。

使用 GPG(命令行)生成密钥

gpg --full-generate-key

选择密钥类型(RSA 或 ECC)、大小和过期时间。如果您的 GPG 版本支持,建议选择 Ed25519 以获得现代安全性。


第二步:分享您的公钥

您的公钥是一个 ASCII-armored 格式的文本块。您可以在任何地方分享它:

  • 电子邮件——粘贴在邮件正文中或作为 .asc 文件附件。
  • 即时通讯应用——通过 Signal、WhatsApp、Matrix 或任何聊天平台发送。
  • 您的网站——发布在个人网站、GitHub 个人资料或 Twitter 简介上。
  • 密钥服务器——上传到公共密钥服务器,如 keys.openpgp.org

重要:只分享您的公钥。任何情况下都不要将私钥分享给任何人。


第三步:导入联系人的公钥

在向某人发送加密消息之前,您需要他们的公钥。请联系人向您发送他们的 ASCII-armored 公钥,或在密钥服务器上搜索。

在 KeychainPGP 中导入密钥

  1. 将联系人的公钥文本块复制到剪贴板。
  2. 打开 KeychainPGP,进入密钥选项卡。
  3. 点击导入密钥并粘贴密钥。
  4. 联系人将出现在您的密钥列表中,显示其姓名和电子邮件。

第四步:加密消息

在 KeychainPGP 中加密(网页或桌面)

  1. 转到加密选项卡。
  2. 输入或粘贴您想要加密的消息。
  3. 从密钥列表中选择收件人。
  4. 点击加密到剪贴板。加密后的消息将被复制到您的剪贴板。
  5. 将加密消息粘贴到电子邮件、聊天或任何其他通信渠道中。

使用桌面快捷键加密

使用 KeychainPGP 桌面应用,通过剪贴板工作流操作更加快捷:

  1. 在任何应用中输入您的消息。
  2. 选中并复制文本(Ctrl+C)。
  3. 按下 Ctrl+Shift+E——KeychainPGP 加密剪贴板内容。
  4. 粘贴加密后的消息(Ctrl+V)。

第五步:解密消息

在 KeychainPGP 中解密(网页或桌面)

  1. 复制完整的加密消息文本块。
  2. 在 KeychainPGP 中转到解密选项卡。
  3. 粘贴加密文本。
  4. 点击解密。明文将立即显示。

使用桌面快捷键解密

  1. 选中并复制加密消息文本块(Ctrl+C)。
  2. 按下 Ctrl+Shift+D——KeychainPGP 解密剪贴板内容。
  3. 明文替换剪贴板中的加密文本。粘贴到您需要的地方。

桌面应用还具有自动清除剪贴板功能:30 秒后,解密的文本会自动从剪贴板中删除。


第六步:签名消息

PGP 数字签名证明两件事:

  1. 真实性——消息由签名密钥的持有者编写。
  2. 完整性——消息自签名以来未被篡改。

签名不会加密消息。任何人都可以阅读签名的消息,但可以验证它确实来自您且未被篡改。

何时签名消息

  • 发布软件版本或安全公告
  • 在公共论坛上验证您的身份
  • 签名电子邮件以证明来源
  • Git 提交签名以确保代码完整性

第七步:验证签名

当您收到签名消息时,可以验证其真实性和未被修改。

在 KeychainPGP 中验证

  1. 复制完整的签名消息(包括签名块)。
  2. 转到验证选项卡。
  3. 粘贴签名消息。
  4. 点击验证。KeychainPGP 将确认签名是否有效。

KeychainPGP 剪贴板工作流

KeychainPGP 与传统 PGP 工具的区别在于其剪贴板加密工作流。它不是操作文件或需要专用的电子邮件客户端,而是通过系统剪贴板与任何应用配合使用。

操作网页应用桌面应用
加密粘贴文本,点击加密复制文本,按 Ctrl+Shift+E
解密粘贴加密文本,点击解密复制加密文本,按 Ctrl+Shift+D
签名粘贴文本,点击签名在应用窗口中操作
验证粘贴签名文本,点击验证在应用窗口中操作

桌面应用的额外安全功能:

  • 自动清除剪贴板——解密后的文本在 30 秒后从剪贴板中删除。
  • OPSEC 模式——伪装窗口标题、密钥仅存于内存、紧急销毁按钮。
  • 系统凭据存储——私钥通过 Windows 凭据管理器、macOS 钥匙串或 Linux Secret Service 安全存储。

网页应用与桌面应用

网页应用在线 PGP 工具):

  • 通过 WebAssembly 完全在浏览器中运行
  • 无需安装、无需账户
  • 非常适合快速加密任务
  • 密钥存储在浏览器本地存储中

桌面应用(Windows、macOS、Linux、Android):

  • 用于加密和解密的全局快捷键
  • 系统托盘集成
  • 自动清除剪贴板
  • OPSEC 模式,密钥仅存于内存和紧急销毁功能
  • 通过操作系统凭据管理器安全存储密钥
  • 更适合日常使用和长期密钥管理

两个应用都是免费、开源(MIT / Apache-2.0)且无任何遥测追踪。


常见问题

我需要分享我的私钥吗?

不需要。您绝对不能与任何人分享您的私钥。您的私钥是用来解密发给您的消息和创建数字签名的。如果其他人获得了您的私钥,他们就可以阅读所有加密给您的消息并冒充您。

如果我丢失了私钥怎么办?

如果您丢失了私钥,您将永久失去解密所有用对应公钥加密的消息的能力。没有任何恢复机制。请始终安全地备份您的私钥。

我可以用 PGP 加密文件吗?

可以。PGP 可以加密文本消息和二进制文件。KeychainPGP 专注于剪贴板文本加密,而 GnuPG 等工具直接支持文件加密。详细对比请参见 PGP 与 GPG 的区别指南。

PGP 加密安全吗?

使用现代算法的 PGP 加密是极其安全的。KeychainPGP 使用 Ed25519 进行签名,X25519 进行密钥交换——这些椭圆曲线算法以极小的密钥尺寸提供等同于 RSA-3072 的安全性。主要风险不是密码学层面的,而是操作层面的:弱密码短语、被入侵的设备或粗心的密钥管理。

什么是 PGP 指纹?

PGP 指纹是一个 40 个字符的十六进制字符串,用于唯一标识一个 PGP 密钥。指纹用于验证公钥确实属于您认为的那个人。请始终通过单独的可信渠道(电话、视频通话或面对面会议)比较指纹,以防止中间人攻击。