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 需要系统重启才能生效,选择“是,现在重新启动”选项,重启电脑。
重启后,启动界面
更新时间:2024-01-08 11:42