PGP (Pretty Good Privacy) 或 GnuPG (GNU Privacy Guard)

发布时间 2023-05-25 21:25:43作者: MR__Wang
使用 PGP (Pretty Good Privacy) 或 GnuPG (GNU Privacy Guard) 为文件生成密钥验证,通常需要 3 个步骤:首先创建一对 PGP 密钥(公钥和私钥),其次为文件生成签名,最后验证文件签名。

1. 创建 PGP 密钥对(公钥和私钥):
如果您尚未拥有 PGP 密钥对,请执行以下命令生成一对新密钥:
```
gpg --gen-key
```
按照终端提示操作即可。生成新密钥后,密钥将自动存储在您的密钥库中。

2. 生成文件签名:
要生成文件签名,您需要使用私钥对文件进行签名。通过以下命令,用私钥为文件生成签名:
```
gpg --sign --detach-sign --armor [file_path]
```
将 `[file_path]` 替换为您想要签名的实际文件路径。运行此命令后,将在文件所在目录下生成一个名为 `[file_path].asc` 的签名文件(密文)。

3. 验证文件签名:
验证签名时,需要使用相应的公钥对签名文件和原始文件进行验证。请执行以下命令进行验证:

```
gpg --verify [file_path].asc [file_path]
```
将 `[file_path].asc` 替换为实际签名文件路径(由生成签名的命令生成),将 `[file_path]` 替换为实际文件路径。

如果验证成功,您将看到以下消息:

```
gpg: Signature made [signature_date] using [algorithm] key ID [key_id]
gpg: Good signature from "[your_name] <[your_email]>"
```

如果验证失败,您将看到以下消息:

```
gpg: Signature made [signature_date] using [algorithm] key ID [key_id]
gpg: BAD signature from "[your_name] <[your_email]>"
```

请注意,如果您尚未导入公钥,请在验证之前执行以下命令将其导入:

```
gpg --import [public_key_file]
```
将 `[public_key_file]` 替换为实际公钥文件路径。

 



若要使用 GPG 创建 ECC(Elliptic Curve Cryptography)密钥对,请按照以下步骤操作:

1. 打开终端或命令行。
2. 运行 `gpg --full-gen-key` 命令,启动交互式密钥生成过程。
3. 当提示您选择密钥类型时,请输入 `9` 以选择 ECC。
4. 在接下来的提示中选择 ECC 的曲线类型。对于大多数用例,建议选择 `Curve 25519`。
5. 接下来,设置密钥到期时间。如需让密钥永不过期,请输入 `0`,或者指定一个有效期(例如:`1y` 表示 1 年后过期,`6m` 表示 6 个月后过期)。
6. 确认您输入的设置是否正确。
7. 提供密钥所有者的姓名、电子邮件地址和可选注释,然后再次确认您输入的信息是否正确。
8. 输入并确认一个安全的密钥口令。

执行完上述步骤后,GPG 会生成一个新的 ECC 密钥对。您可以用 `gpg --list-keys` 和 `gpg --list-secret-keys` 命令来查看公钥和私钥。

如果您在尝试使用 `gpg --full-gen-key` 命令创建新的 ECC 密钥对时无法选择 ECC 选项,可以尝试以下解决方法:

1. 确保您的 GnuPG 版本支持 ECC:
运行 `gpg --version` 命令查看您的 GnuPG 版本信息。ECC 支持是从 GnuPG 2.1 版本开始引入的。如果您看到的 GnuPG 版本低于 2.1,请升级您的 GnuPG 到最新版本。

2. 如果您正在使用支持 ECC 的 GnuPG 版本,但仍然无法选择 ECC 密钥,请尝试使用以下命令:

```
gpg --expert --full-gen-key
```
这将打开交互式密钥生成过程并显示所有可用的密钥类型,包括 ECC。接下来,按照之前描述的步骤选择相应的密钥类型、曲线类型、到期时间等,以完成 ECC 密钥对生成。