GPG实践

发布时间 2023-12-22 11:21:49作者: 20231309

实践任务

参考相关教程, 给队友发送一封邮件,邮件内容为自己学号+对方学号,用对方公钥加密,然后对方用自己私钥解密。

实践过程

1.gpg的安装

安装指令:

Ubuntu下 : sudo apt-get install gnupg

OpenEuler下 : yum install gnupg

2.密钥的生成

生成密钥指令:

gpg --gen-key(gen为generate的缩写)

可以看到输入指令后出现了一堆文字,
其中gpg:key 476E7A1D2B87A349 marked as ultimately trusted的476E7A1D2B87A349 是"用户ID"的Hash字符串,可以用来替代"用户ID"。
(用户ID即前面输入的邮箱)

3.公钥的导出与导入

导出自己的公钥:gpg --armor --output [公钥文件名] --export [用户ID]

导入他人的公钥:gpg -- import [公钥文件]

本步骤就是把自己的公钥导出发给对方并将接收到的公钥文件导入

4.文件的加解密

加密文件:gpg --recipient [用户ID] --output [加密后的文件名] --encrypt [加密前的原文件名](用户id即接收方的id,用于选择加密公钥,demo_en.txt即加密后的文件)

解密文件:gpg --output [解密后文件名] --decrypt [加密文件]
(这里不用输用户id,因为解密一定用的是自己的私钥无需选择)

相关问题与解决方案

在实际操作过程中难免遇到各种奇奇怪怪的问题,以下我列举的是我遇到的:

  • 问题1:gpg安装失败

  • 解决方案:不同系统下安装命令不同,我用的明明是华为云下的OpenEuler系统但却使用Ubuntu的安装命令导致失败,改用yum命令安装即可

  • 问题2:接收到的对方的公钥导入失败

  • 解决方案:公钥文件最好直接原封不动完整发送,一旦有任何修改都可能出现问题,我们最初发送公钥时就想当然地把公钥文件开头的提示信息删去了,结果导致公钥识别失败,直到用完整公钥文件才成功

参考资料