Linux—— Gpg

1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP(Pretty Good Privacy)。成为程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。 GPG 是 GNU Privacy Guard的简写,是GNU对PGP技术的实现。

1.git下编译安装。

[root@node2 soft]# git clone https://github.com/gpg/gnupg.git
[root@node2 soft]# cd gnupg/
#没有configuate文件不知道怎么安装
[root@node2 gnupg]# ls
ABOUT-NLS artwork build-aux configure.ac COPYING.LGPL21 doc kbx po scd TODO
acinclude.m4 AUTHORS ChangeLog COPYING COPYING.LGPL3 g10 m4 README sm tools
agent autogen.rc ChangeLog-2011 COPYING.CC0 COPYING.other g13 Makefile.am README.GIT tests
am autogen.sh common COPYING.GPL2 dirmngr INSTALL NEWS README.maint THANKS

2.yum安装

[root@master ~]# yum install gnupg

3.命令

3.1 gpg帮助

gpg --help

3.2 生成公钥

gpg --gen-key

3.3 撤销公钥

gpg --gen-revoke [用户ID]

3.4 删除公钥

gpg --delete-key [用户ID]

3.4 列出密钥

gpg --list-keys

3.5 输出密钥

gpg --armor --output public-key.txt --export [用户ID]

3.6 转换私钥。

gpg --armor --output private-key.txt --export-secret-keys
export-secret-keys参数可以转换私钥。

3.7 上传公钥

公钥服务器是网络上专门储存用户公钥的服务器。send-keys参数可以将公钥上传到服务器。使用上面的命令,你的公钥就被传到了服务器subkeys.pgp.net,然后通过交换机制,所有的公钥服务器最终都会包含你的公钥。
gpg --send-keys [用户ID] --keyserver hkp://subkeys.pgp.net

3.8 生成公钥指纹

由于公钥服务器没有检查机制,任何人都可以用你的名义上传公钥,所以没有办法保证服务器上的公钥的可靠性。通常,你可以在网站上公布一个公钥指纹,让其他人核对下载到的公钥是否为真。fingerprint参数生成公钥指纹。
gpg --fingerprint [用户ID]

3.9 输入密钥

gpg --import [密钥文件]

3.10 查找密钥

为了获得他人的公钥,可以让对方直接发给你,或者到公钥服务器上寻找。
gpg --keyserver hkp://subkeys.pgp.net --search-keys [用户ID]

3.11 加密

gpg --recipient [用户ID] --output demo.en.txt --encrypt demo.txt
encrypt参数用于加密。recipient参数指定接收者的公钥,output参数指定加密后的文件名,encrypt参数指定源文件。

3.12 解密

gpg --decrypt demo.en.txt --output demo.de.txt
decrypt参数指定需要解密的文件,output参数指定解密后生成的文件。
GPG允许省略decrypt参数,解密后的文件内容直接显示在标准输出。
gpg demo.en.txt

3.13 对文件签名

gpg --sign demo.txt
生成ASCII码的签名文件

3.14 生成ASCII码的签名文件

gpg --clearsign demo.txt
生成ASCII码的签名文件使用clearsign参数,
当前目录下生成demo.txt.asc文件,后缀名asc表示该文件是ASCII码形式的。

3.15 生成单独的签名文件

gpg --detach-sign demo.txt
gpg --armor --detach-sign demo.txt
当前目录下生成一个单独的签名文件demo.txt.sig。该文件是二进制形式的,如果想采用ASCII码形式,要加上armor参数。

3.16 签名+加密

gpg --local-user [发信者ID] --recipient [接收者ID] --armor --sign --encrypt demo.txt
local-user参数指定用发信者的私钥签名,recipient参数指定用接收者的公钥加密,armor参数表示采用ASCII码形式显示,sign参数表示需要签名,encrypt参数表示指定源文件。

3.17 验证签名

gpg --verify demo.txt.asc demo.txt
收到签名后的文件,需要用对方的公钥验证签名是否为真,verify参数用来验证。

————Blueicex 2020/2/22 13:11 blueice1980@126.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值