下载GPG

GPG官方下载地址: https://gnupg.org/download/index.html

我所使用的是kali_Linux,选择的是

请自行选择适合的版本下载,解压即可使用

也可以输入命令安装

sudo apt install gnupg

要使用 GPG,你首先需要有一个 GPG 密钥。

GPG 密钥是你在后面的教程中用来加密(或解密)文件的东西。它也是用来识别你的身份的,你的名字和电子邮件也会与密钥绑定。

GPG 密钥的工作原理是使用两个文件,一个私钥和一个公钥。这两个密钥是相互联系的,并且 GPG 的所有功能都需要使用它们,特别是对文件加密和解密。

当你用 GPG 加密一个文件时,它使用的是私钥。然后,这个新的加密文件只能用配对的公钥进行解密。

私钥,顾名思义,是以私下的、不给任何人看的方式来存储的密钥。

另一方面,公钥是用来给其他人的,或者你希望能够解密你的文件的任何人。

这就是 GPG 的加密方法的主要作用。它允许你对文件进行本地加密,然后允许其他人确保他们收到的文件实际上是由你发送的。因为他们能够解密文件的唯一方法是使用你的公钥,而这只有在文件首先使用你的私钥加密的情况下才有效。

反之,其他人可以用你的公钥对文件进行加密,而唯一能够解密的方法是用你的私钥。因此,允许其他人公开发布文件,而不用担心除了你以外的人能够阅读它们。(LCTT 译注:另外一个常见的用例是你用你的私钥对公开发布的文件进行签名,别人使用你的公钥通过验证你的签名而确信文件是你发布的、并没有被篡改。但本文没有涉及这个用例。)

换句话说,如果一个文件是用私钥加密的,它只能用相应的公钥解密。而如果一个文件是用公钥加密的,它只能用相应的私钥解密。

生成GPG密钥

运行下面指令

gpg --full-generate-key

根据你的选择填写密钥类型,密钥长度,有效期限,姓名和邮箱

输入O确定时,会让你输入密码,这个是可选项

如果不想填就直接点确定,选择”是的,保护不是必须的”

然后就会生成密钥对

这里我们看不到私钥,可以终端输入下面指令查看

gpg --list-secret-keys

GPG加密文件

首先创建要加密的文件(类型不限)test.txt

要发送加密文件给别人,你需要有接收者的公钥,用接收者的公钥加密文件,这样只有接收者才能解密文件。具体怎么获得密钥由你自己决定。 你可以让他们直接把公钥发送给你, 也可以通过密钥服务器来获取。

收到对方公钥文件后,导入公钥到 GPG 中。

gpg --import receiver.key

这些公钥与你自己创建的密钥一样,自带了名称和电子邮件地址的信息。

现在可以开始加密要发送的文件了。GPG 需要知道这个文件的接收者和发送者。输入下面指令, 这里-e标志告诉 GPG 你想要加密文件,-r标志指定接收者。

gpg -e -r "Receiver Name" test.txt

得到.gpg后缀的加密文件

如果你有多个密钥,可以用下面指令加密,-u参数指定发送者

gpg -e -u "Your Name" -r "Receiver Name" <filename>

GPG解密文件

收到对方用我们自己的公钥加密的.gpg文件后,使用下面命令解密

gpg -d <filename>

例如我要解密用我的公钥加密的.gpg文件 1.txt.gpg 直接终端输入gpg -d 1.txt.gpg

删除密钥

删除密钥有三个选项:

–delete-keys、–delete-secret-keys和–delete-secret-and-public-key
–delete-keys表示从公钥钥匙圈上删除密钥,也就是一同删除公钥和对应的私钥。在分批模式(batch mode)下,密钥必须使用指纹表示,或者使用–yes选项。
–delete-secret-keys表示从私钥钥匙圈上删除密钥。
–delete-secret-and-public-key和–delete-keys一样,但是如果私钥存在的话,会先移除私钥。在分批模式下,密钥必须使用指纹表示。

例如我要删除我的公钥中的testname公钥,就输入下面的语句

gpg --delete-keys testname

要删除testname私钥,就输入下面语句

gpg --delete-secret-keys testname

参考链接:

https://www.linuxprobe.com/gpg-encrypt-decrypt.html

https://blog.csdn.net/qq_33919450/article/details/115706604