基础的准备工作
环境准备
先确保Ubuntu下安装了GPG,可以使用gpg --help
来判断,如果有以下提示项,则证明已安装
若没有也可以通过sudo apt-get install gnupg
来进行安装
内容准备
虽然网上的教程给出了新老两个版本的创建密钥的口令gpg --gen-key
和gpg --full-generate-key
在这里通过自己两次的实践,建议使用第二个口令,因为第二个更加的具体,能对创建的过程有着更好的理解也和现存的教程贴合度较高,密钥类型默认没有特殊要求就可以选1,其他根据自己需求进行选择即可,如果实在不知道,也可以参考下图内容的,当然真实姓名和电子邮箱地址需要自行填写,并且需要记住。
在完成创建后,我们可以通过gpg --list-key
来查看我们现在有的密钥
加解密前的准备和加解密
加密时需要有公钥和私钥,这里以两种情况为例,一个是自己的公钥加密自己的解密,另一个是别人的公钥加密,发送给对方,对方使用私钥进行解密。
自己
若自己进行加解密,可以通过gpg -a --export [用户名(如Chang)] >Chang_pub.asc
和 gpg -a --export-secret-keys [用户名(如Chang)] >Chang_privacy.asc
将私钥公钥导出,然后就可以进行加解密了,比如我们touch一个txt文件,并在里面输入Hello!未加密前我们cat一下可以看到内容是正常的,而在经过加密指令gpg -ea -r Chang hello.txt
后,再进行cat会发现是一串密文,此时加密就完成了。
加密完成后,也可以在文件路径内看到,加密后的.asc文件,那我们如何解密呢,就可以用到gpg -o newhello.txt -d hello.txt.asc
来实现解密,其中newhello.txt是解密后新建的文件名称和格式,是可以根据自己需求进行更改的,而最后的hello.txt.asc是我们需要进行解密的文件,也是因需而变的。
并且此时我们再cat一下就可以看到原文了,从而完成了对自己文档的加解密,在一定程度上,保护了我们文件的安全,在必要情况下,可以将具有原文的文件删除,保留加密后的文件,这样能防止别人窥窃自己的内容了。
双方
对于多方进行的邮件传输,在这里采用的是一种,使用对方的公钥进行加密,再传送给对方,对方使用私钥再进行解密,从而保障了隐私安全。
所以我们首先要做的就是要得到对方的公钥,要进行公钥的传送,首先先需要导出公钥,公钥的格式是.asc类型的,如何导出公钥就可以参考上文中自己加解密过程的教程了,再可以通过多种方式(邮件,U盘等)进行传送,在得到对方的密钥后,下一步要做的就是将对方的密钥导入到我们的库中,可以通过gpg --import mottte.asc
最后的一个文件是对方的密钥,导入成功后,如下图所示。
在完成了这一步之后,就可以通过gpg --encrypt --recipient mottte work.txt
进行加密了,同样mottte是对方的用户名,work.txt是文件名,二者可以自由更改。
在此之后,就可以将加密文件传给对方,对方就可以通过gpg -o new.txt -d work.txt.asc
,到此就基本完成了。