GnuPG 简介

1、什么是 GnuPG ?

官方地址:https://www.gnupg.org/
文档地址:https://www.gnupg.org/documentation/guides.html
源码地址:https://github.com/gpg/gnupg

GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物。GnuPG依照由IETF订定的OpenPGP技术标准设计。GnuPG用于加密、数字签名及产生非对称钥匙对的软件。

2、GnuPG 安装

2.1、下载安装包

GnuPG 下载:

下载地址:https://gnupg.org/download/

可以从官方下载,或进入镜像地址根据自己的情况进行下载!

日本镜像节点:http://www.ring.gr.jp/pub/net/gnupg/binary/

下载文件到本地(最终我使用Gpg4win,所以一并下载下来)

双击“gnupg-w32-${版本号}.exe” 可执行程序开始安装

点击“Next”,继续

点击“Install” 开始安装

等待安装完成。

安装完成后,打开 CMD 窗口,输入gpg --version,出现下图所示信息表示安装成功:

3、GnuPG 使用

3.1、生成密钥对

在使用 GPG 之前,先要准备一个密钥对,即一个私钥,一个公钥。这样才能使用私钥对文件进行签名,将公钥分发到公钥服务器供其他用户下载,其他用户就可以使用公钥对签名进行验证。

在 CMD 命令行中,输入gpg --gen-key命令生成密钥对。
在 GPG 执行过程中会提示如下几个信息。

# 示例信息
Real name: hiwepy
Email address: hiwepy@163.com

输入“O”后会弹出,密码设置界面,输入你要设置的密码(需要记住,后面发布组件会用到)

设置完密码后,输出如下进行,表示创建成功!

查看公钥和私钥信息:在 CMD 命令行窗口中输入gpg --list-keys,查看本地公钥信息,列表如下图所示。

第一行显示公钥文件和所在的位置。

    pub 行描述的是公钥大小(2048)/公钥 id(DDAAB5A8),公钥产生日期(2019-08-07)。
    uid 行描述的是由名称、备注和邮件地址组成的字符串。
    sub 行表述的是公钥的子钥(可以不用关心)。

在 CMD 命令行窗口中输入gpg --list-secret-keys,查看本地私钥信息,列表如下图所示。

第一行显示密钥文件和所在的位置。

    sec 行描述的是密钥大小(2048)、id(DDAAB5A8)和产生日期(2019-08-07)。
    uid 行描述的是由名称、备注和邮件地址组成的字符串。
    ssb 行描述的是密钥的子钥(可以不用关心)。

验证签名:给文件创建签名文件:打开 CMD 命令行窗口,切换到 IDemo.java 文件所在的目录。输入 gpg -ab IDemo.java 命令,再输入前面生成密钥时输入的密码,会在当前目录下生成一个名叫 IDemo.java.asc 的签名文件。

3.2、分发公钥文件(必须发布到公钥服务器,否则无法发布组件)

为了让用户能方便地获取公钥文件,对下载的文件进行验证,需要将公钥文件发布到公共的公钥服务器上,如 hkp://pgp.mit.edu 是美国麻省理工学院提供的公钥服务器。

打开 CMD 命令行窗口,将目录切换到公钥文件所在的目录,输入如下命令将公钥文件分发到公钥服务器。

# gpg --keyserver hkp://pool.sks-keyservers.net:11371 –send-keys C6EED57A
# gpg --keyserver hkp://pgp.mit.edu:11371 –send-keys C6EED57A
# gpg --keyserver hkp://keyserver.ubuntu.com:11371 –send-keys C6EED57A

# “hkp://pgp.mit.edu”是公钥服务器名称。
# C6EED57A 是要发布的公钥 id(前面生成的密钥对中的公钥)
# 示例
gpg --keyserver hkp://pool.sks-keyservers.net:11371 --send-keys 76A55895B4B78C28EA925411CE6ABAF020DCD37E
gpg --keyserver hkp://pgp.mit.edu:11371 --send-keys 76A55895B4B78C28EA925411CE6ABAF020DCD37E
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 76A55895B4B78C28EA925411CE6ABAF020DCD37E


gpg --keyserver hkp://pool.sks-keyservers.net:11371 --recv-keys 8D938BC495A18632EEA9958410C41BB4AA63F831
gpg --keyserver hkp://pgp.mit.edu:11371 --recv-keys 76A55895B4B78C28EA925411CE6ABAF020DCD37E
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 76A55895B4B78C28EA925411CE6ABAF020DCD37E

显示如下信息,表示发布成功。

gpg: sending key 10C41BB4AA63F831 to hkp://pgp.mit.edu

注意:只需往一台服务器上发布公钥就行,其他公钥服务器会自动同步。

3.3、导入公钥服务器上的公钥

为了验证下载的文件是否准确,需要先从公钥服务器上下载对应的公钥,导入本地 GPG 服务器中,才能使用 GPG 完成对下载文件的验证。

在 CMD 命令行窗口中输入gpg --keyserver hkp://pgp.mit.edu --recv-keys 10C41BB4AA63F831 ,下载 10C41BB4AA63F831 对应的公钥。

gpg --keyserver hkp://pgp.mit.edu --recv-keys 10C41BB4AA63F831

注:因为本地已经有这个公钥,所有下载后提示没有改变。

公钥验证下载的文件:打开 CMD 命令行窗口,切换到下载文件所在的目录(原始文件和签名文件),输入命令如下:

gpg --verify IDemo.java.asc

到现在为止,已经完成了 GPG 的安装、签名、分发和验证的流程。以后的 Maven 项目就可以直接使用现在生成的密钥对发布文件签名。

4、GnuPG for Windows

4.1、关于 Gpg4win

Gpg4win(适用于Windows的GNU Privacy Guard)是用于文件和电子邮件的加密软件。

4.2、什么是 Gpg4win ?

Gpg4win使用户能够借助加密和数字签名安全地传输电子邮件和文件。加密可以保护内容免遭有害人员阅读。数字签名确保它没有被修改并且来自特定的发件人。

Gpg4win支持相关的加密标准 OpenPGP和S / MIME(X.509),并且是Windows的官方GnuPG发行版。它由GnuPG的开发人员维护。Gpg4win和Gpg4win附带的软件是免费软件(开放源代码;其中包括针对所有商业和非商业目的免费的软件)。

Gpg4win的创建得到了德国 联邦信息安全局(BSI)的支持。

官方地址:https://www.gpg4win.org/
文档地址:https://www.gpg4win.org/documentation.html
源码地址:https://github.com/gpg/gpg4win

4.3、Gpg4win 安装与使用

4.3.1、下载安装包
Gpg4win 下载:

下载界面,默认选择了 donate(捐赠)选项,选择捐赠额度为0,点击下载即可!

下载地址:https://www.gpg4win.org/get-gpg4win.html

双击“gpg4win-${版本号}.exe” 可执行程序开始安装

点击“下一步”,保持默认选项即可

安装位置默认即可

等待安装完成

Gpg4win 需要系统重启才能生效,选择“是,现在重新启动”选项,重启电脑。

重启后,启动界面

作者:Jeebiz  创建时间:2019-12-28 22:48
 更新时间:2024-01-08 11:42