如何使用 GPG 加密和解密文件
GnuPG,通常称为 GPG,是 Pretty Good Privacy 加密标准的开源实现。它为静态和传输中的数据提供对称和非对称加密。
本文介绍如何使用 GPG,演示其在常见操作系统上的安装,并提供使用说明。
GPG 如何保护数据?
加密旨在满足以下三个目标:
- 真实性:保证消息来源。
- 完整性:保证消息未被意外更改。
- 不可否认性:保证消息来源。
GPG 通过结合对称和非对称加密来保护存储的文件和数字通信,从而满足所有三个目标。
对称和非对称加密是当今安全和隐私策略的关键组成部分。对称加密使用单个私钥(共享密钥)来加密和解密数据,而非对称加密则使用数学上相关联的公钥和私钥对。用一个密钥加密的数据只能由另一个密钥解密——例如,使用公钥加密的数据只能使用相关的私钥解密。
GPG 结合了这两种方法,使用户能够确保数据隐私、来源和完整性。因此,GPG 被广泛使用和支持。
常见的 GPG 用例
考虑以下使用 GPG 保护数据存储和传输的方法:
- 用于保密的加密电子邮件。
- 用于真实性的数字签名电子邮件。
- 用于数据保密的加密文件。
- 数字签名的软件包、脚本和其他应用程序。
- 数字签名的 Git 提交。
考虑您自己的工作流程,以确定 GPG 可以保护您信息的其他方式。
安装 GPG
GPG 是免费开源软件,有助于确保其安全性和稳定性。它适用于常见平台,包括 Linux、macOS 和 Windows。
大多数 Linux 发行版默认包含 GPG。使用 gpg --version 命令验证您是否拥有当前版本。如果未安装 GPG,请使用您发行版的首选软件包管理器。
对于 Ubuntu、Debian、Linux Mint 和类似发行版,输入:
|
|
在 Red Hat Enterprise Linux、Fedora、Rocky 和类似发行版上,输入:
|
|
macOS 用户可以通过输入以下命令使用 Homebrew 软件包管理器安装 GPG:
|
|
macOS 用户也可以使用 GPG Suite 图形应用程序来管理加密。
喜欢 Windows 平台的用户可以通过两种方式访问 GPG:GnuPG 二进制文件是来自 GnuPG 网站的官方安装程序,而 Gpg4win 是图形/命令行应用程序。
如何使用 GPG 进行对称加密
对称加密提供最直接的管理过程。但是,您必须能够安全地将密钥传送到任何需要解密的远程连接处。这种方法最适用于单个系统内或安全环境内的数据加密场景。
加密文件的最简单方法是使用此命令:
|
|
这将生成一个名为 private-file.txt.gpg 的加密文件。
GPG 会提示您输入密码短语来保护文件。
您可以通过使用以下更复杂的命令来指定更多细节,例如特定文件名:
|
|
然后,要解密 new-private-file.txt.gpg 文件,请输入:
|
|
您可以用 -o 和 -d 标志替代以减少输入。GPG 会自动提示您输入为私钥设置的密码短语。
使用此过程来保护数据备份文件、共享计算机上的机密信息或传输到远程存储设备及从中取出的资源。
请注意,GPG 在加密过程中会生成文件的新版本。原始的非加密文件仍保留在驱动器上。考虑使用诸如 shred 之类的命令安全地删除它。
如何为非对称加密生成密钥对
通过生成公钥-私钥对来开始使用 GPG。这些密钥在数学上相关联。对于非对称加密,如果您用一个密钥加密数据,则必须用另一个密钥解密。以下是两个选项的示例:
- 保密性:使用公钥加密,使用私钥解密。
- 数字签名,完整性:使用私钥加密,使用公钥解密。
在 Linux 系统上,输入以下命令生成密钥对:
|
|
您有多种选项可以自定义密钥长度、类型和其他设置。GPG 会提示您输入姓名和电子邮件地址作为密钥身份的一部分。您还可以设置一个强密码短语来保护您的私钥。
您可能需要将您的公钥与其他用户共享,以便他们可以解密使用您的私钥加密的数据。使用以下命令导出所需的公钥信息:
|
|
如果您收到另一个用户的公钥或需要向接收您公钥的人提供说明,请使用此命令将其导入您的系统:
|
|
输入 gpg --list-public-keys 验证密钥是否存在。用户的公钥使您能够解密使用相关私钥加密的数据。
如何使用 GPG 进行非对称加密
要使用另一个用户的公钥加密文件——从而确保只有拥有相关私钥的用户才能解密数据——请输入以下命令:
|
|
此命令指定加密文件的名称——secret-file.txt.gpg——以及收件人的电子邮件地址——recipient-email@example.com。在此示例中,您正在加密 secret-file.txt 文件。
在数据传输的另一端,用户输入以下命令开始解密过程:
|
|
该用户输入保护其私钥的密码短语以完成该过程。
将 GPG 加密集成到您的日常工作中可以极大地增强数据的安全性。您已经在做备份了,对吧?现在,您可以加密这些备份以获得更高的保密性。您也使用电子邮件进行重要业务往来。学习如何使用 GPG 对消息进行数字签名为通信增加了重要的保护层。