GPG实践
实践任务
参考相关教程, 给队友发送一封邮件,邮件内容为自己学号+对方学号,用对方公钥加密,然后对方用自己私钥解密。
实践过程
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:接收到的对方的公钥导入失败
-
解决方案:公钥文件最好直接原封不动完整发送,一旦有任何修改都可能出现问题,我们最初发送公钥时就想当然地把公钥文件开头的提示信息删去了,结果导致公钥识别失败,直到用完整公钥文件才成功