GPG及其基本使用。

PGP

PGP(Pretty Good Privacy)就是这样一个用来帮助提高安全性的技术。PGP最常用来给电子邮件进行加密、解密以及提供签名,以提高电子邮件交流的安全性。

GPG

GnuPG(简称GPG)是PGP标准的一个免费实现,无论是类UNIX平台还是Windows平台,都可以使用他。GPG能够帮助我们为文件生成签名、管理密码以及验证签名等。

首先,访问http://www.gnupg.org/download/并下载对应自己平台的GPG分发包,按照官方的文档将GPG安装完毕,运行如下命令检查安装:

gpg --version

在使用GPG之前,先得为自己准备一个密钥对,即一个私钥和一个公钥。之后才可以使用私钥对文件进行签名,并且将公钥分发到公钥服务器供其他用户下载,用户可以使用公钥对签名进行验证。
使用如下命令生成密钥对:

gpg --gen-key

GPG会问你密钥的类型、大小和有效时间,通常使用默认的值即可。GPG还会要求你输入自己的名称、电子邮件地址和对密钥的注释,这些内容会被包含在公钥中并被你的用户看到,因此务必正确填写。最后,还可以提供一个密码来保护密钥,这不是强制性的,但通常最好提供以防止别人得到你的密钥后而已使用。你将来需要使用密钥和密码为文件提供签名,因此一定要认证保护他们。

现在已经有了密钥对,就可以在命令行中查看他们(其他导入到本地机器的密钥也会被显示),如下面的命令可用来列出所有公钥:

gpg --list-keys /home/test/.gnupg/pubring.gpg

这里的/home/test/.gnupg/pubring.gpg表示公钥存储的位置。以pub开头的一行显示公钥的长度、ID以及创建日期。下一行显示了公钥的UID,也就是一个由名称、注释和邮件地址组成的字符串。最后一行显示的子钥不用关心。
类似的,下面的命令用来列出本机私钥:

$gpg --list -secret-keys /home/test/.gnupg/secring.gpg

对GPG的公私钥有了基本的了解之后,就可以使用如下命令为任意文件创建一个ASCII格式的签名:

gpg -ab temp.java

这里的-a选项告诉GPG创建ASCII格式的输出,而-b选项则告诉GPG创建一个独立的签名文件。如果你的私钥拥有密码,这个时候就需要输入密码。如果私钥没有密码,那么只要他人获得了你的私钥,就能够以你的名义对任何内容进行签名,这是非常危险的。

在该例中,GPG会创建一个名为temp.java.asc的签名文件,这时就可以将这个后缀名为.asc的签名文件连同原始文件一起发放给你的用户。如果你的用户已经导入了你的公钥,就可以运行如下命令验证原始文件:

gpg --verify temp.java.asc

为了能让你的用户获取公钥并验证你分发的文件,需要将公钥分发到公钥服务器中。例如,hkp://pgp.mit.edu是美国麻省理工学院提供的公钥服务器,运行如下命令可将公钥分发到该服务器中:

gpg --keyserver hkp://pgp.mit.edu --send-keys C6EED57A

这里的 --keyserver选项用来指定分发服务器的地址,--send-keys用来指定想要分发公钥的ID。你可以罗列本地公钥来查看他们的ID。需要注意的是,公钥会在各个公钥服务器中被同步,因此你不需要重复的往各个服务器分发同一公钥。

现在,你的用户可以将服务器上的公钥导入到本地机器:

gpg --keyserver hkp://pgp.mit.edu --recy-keys C6EED57A

上述就是一个基本的签名、分发并验证的流程,在使用Maven发布项目的时候,可以使用GPG为发布文件提供签名。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值