首页gpg › GPG入门笔记

GPG入门笔记

0. 简介
GPGGNU Privacy Guard的简写,是GNUPGP技术的实现。PGPPretty Good Privacy的简写,是一套用于加密的软件。
PGP加密过程如下(来自维基百科 PGP):

PGP同时利用了对称加密和非对称加密,对文件内容的加密用的是对称加密,对称加密的密钥是每次加密时生成的。由于对称密钥要随密文一起传输,采用了非对称加密算法给对称密钥进行了加密。

1. GPG 的安装
1.1 linux命令行版本
CentOS为例:

安装成功后,运行 gpg -h测试下:

1.2 GUI版本
GUI版本可用gpg4win:
gpg4win https://www.gpg4win.org/download.html 我的PGP密钥就是用这个软件生成的。

2. GPG的使用
命令行下gpg的使用可以参考阮一峰老师的 GPG入门教程 。
2.1 列出密钥

显示结果如下:

2.2 导出公钥
形式如下(注意顺序不能反了):

实际执行:

打开文件pubkey.asc,会是这个样子:

2.3 导出私钥
形式如下:

执行后,打开 prikey.asc,内容如下:

2.4 导入密钥
可以将其他人的公钥或者自己的私钥导入系统。
形式如下:

2.5 加密文件
形式如下:

demo.txt的内容会先用随机产生的对称加密密钥进行加密。指定接收文件的用户ID,实际上是用他的公钥加密 对称加密密钥
2.6 解密文件
形式如下:

--decrypt参数要放在后面,顺序反过来会报错:

解密文件,是使用自己的私钥把 加密后的对称加密密钥解开,然后用对称加密密钥解密加密的内容。
2.7 签名
2.7.1 生成二进制格式的验签

2.7.2 生成ASCII格式的验签

会生成demo.txt.asc文件。
实际执行:

1.php内容如下:

签名后 1.php.asc`内容如下:

2.7.3 单独生成签名文件

生成ASCII格式的单独签名文件

实际执行:

1.php.asc内容如下:

2.8 验签

实际执行:

输出:

2.9 加密和签名

实际执行(发信人和收信人都是我自己):

执行过程中需要确认:

加密并签名后的1.php.asc内容如下:

对该文件解密:

控制台输出:

对比2.8 验签一节的内容,看来解密的同时已经做了验签。
查看10.php,内容如下:

解密成功。

发表评论