十一月 7, 2020

GnuPG 基本操作

GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物

软件介绍

首先软件介绍就不多说了 一般Linux发行版都是自带的 命令为 gpg 在Windows环境的话,可以访问这里来下载图形界面

Windows 下的安装

直接下载后双击安装

只需要在上图按需选择 如果有 Outlook 就选择上加密的那个插件,否则也无所谓默认即可.

新建密钥对操作,以Windows下操作为例

安装完成后 桌面应该有一个叫 Kleopatra 的快捷方式.双击启动
在主界面中按Ctrl+N 的招牌新建快捷方式打开新建 密钥对的窗口.
选择第一个Create a personal OpenPGP key pair
然后输入NameEMail 这将方便别人了解是谁签名了这个文件

推荐点Advanced Settings... 然后按照下图配置过期日期,使用 4096 bits

最后的结果应该是这样的
点击Create 后将会让你输入密钥的密码,一定要记住密码 在你签名和解密文件的时候需要被验证.
完成后将显示这个界面.强烈推荐选择 备份你的密钥

导出公钥

非对称加密的是使用 一对密钥下的 公钥进行加密 然后用 私钥 进行解密操作,一个文件可以使用多个公钥来加密.针对不同收件人. 具体词条可以看 百度百科的非对称加密算法
然后我们先获取刚才新建的密钥对的公钥部分,对密钥条目右键,选择Export来到处公钥部分
然后尝试用记事本等文本工具打开这个文件会看到类似下面的内容

 -----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBF5T0CMBEADIe0rvDLDBJzmDZQWsd6SRhr+2acVEFlhY5THNt5GlubTtO1VA
.
..
...
-----END PGP PUBLIC KEY BLOCK-----

以上内容会有很多行.这个就是刚才密钥对的 公钥部分.
然后可以选择性的使用 Publish on Server 把密钥的公钥部分发布到公共服务器.供别人下载.然后别人可以用公钥加密文件后发给你.
也可以使用其他方式把公钥文件发给需要的人.让他用这个加密文件后发回给你.

导入他人公钥

首先如果需要导入公钥.需要设置 公钥服务器.在 Settings -> Configure Kleopatra 的设置界面,选择下图的面板.添加 Keyserver

点击 New 然后在 Server Name 里输入 keys.gnupg.net , Port 从默认的 389 改成 80
然后点击主界面工具栏的 Lookup on Server 搜索你认可的收件人的email.如果没有找到 可以线下交流获取到对方的公钥文件.
导入对方 公钥后 会要求用你的私钥签名验证是否真实有效.可以核对 Key-ID 来进行验证
导入后界面可能回是如下结果

粗体的是有私钥的.也就是之前的密钥对. 不是粗体的就是只有公钥
然后我们就可以进行加密文件的操作了

加密文件操作

Windows上是有右键快捷菜单来处理这类操作.直接右键点击需要加密的文件.

然后会出现下图的签名/加密文件的设置对话框

上图一共3个部分
红色是使用你自己的 密钥签名来验证被加密文件的完整性
绿色部分是这个加密后的文件你也可以打开 所以需要用自己的公钥部分参与加密
蓝色部分是收件人.可以选择你需要发给谁.
全部选择妥当后直接点 Sign/Encrypt 就可以完成加密了.
在加密过程中需要你输入密钥的密码来进行签名操作.如果没有勾选红色的签名 则不需要输入密码

解密文件操作

从他人或者上一步加密完成后的文件大概长这种样子

然后我们右键这个文件,从 菜单内选择 Decrypt and verify 首先会弹出验证文件的结果(前提是加密时候选择了对文件进行签名)

绿色则说明文件是正常未被修改的
然后点 Save All 就可以保存解密后的文件到上面的输出目录了.