GPG

 

 1、什么是GPG程序员

  要了解什么是GPG,就要先了解PGP。算法

  1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP。这个软件很是好用,迅速流传开来,成了许多程序员的必备工具。可是,它是商业软件,不能自由使用。因此,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。安全

  GPG有许多用途,本文主要介绍文件加密。本文的使用环境为Linux命令行。若是掌握了命令行,Windows 或 Mac OS 客户端,就很是容易掌握。服务器

 

2、使用GPG工具

1.建立密钥加密

gpg --gen-key

  第一段是版权声明,而后让用户本身选择加密算法。默认选择第一个选项RSA,表示加密和签名都使用RSA算法,目前来讲,RSA算法是安全性最强的。咱们输入1,而后回车spa

  而后会让咱们配置密钥的加密长度。RSA 密钥长度应在 1024 ~ 4096 位之间,默认是2048。密钥的长度越长,安全性越高,可是加密和解密的速度就越慢。在此咱们使用默认配置2048。命令行

 

  接下来设置密钥的有效期,默认值0表明永不过时。而后会让咱们确认密钥的有效期,直接输入y继续。若是想设置在密钥2年后过时,那么应该输入2y,而后回车,其余类推。翻译

 

  输入y确认以后,会要求咱们输入我的信息来构造用户ID,按顺序为:真实姓名、Email地址、注释,其中注释能够为空。3d

  而后用户ID就生成好了,此时会向你确认信息是否须要修改:输入N修改姓名,C修改注释,E修改Email,O表示确认,Q退出。我输入字母O确认。

  而后须要设置一个密码来保护咱们的私钥。这里输入密码的时候,不会在控制台上显示出来。

   而后咱们的公、私钥就已经生成好并签名完成。

 

  公钥:pubring.gpg,私钥:secring.gpg。其中生成公钥的密钥ID是:7A701106,私钥的ID为:BBA3B083。其中密钥ID即为公钥ID,也能够做为用户ID,。这里有两处须要记住,第一就是设置的私钥密码,第二就是生成公钥的密钥ID。私钥密码是解密时须要的。密钥ID是对文件进行加密须要的。

  到此为止,咱们已经完成了生成公钥和私钥的任务了。这时,最好再生成一张"撤销证书",以备之后密钥做废时,能够请求外部的公钥服务器撤销咱们的公钥。

 

  而后会让咱们设置吊销缘由,输入描述(可选);以空白行结束:

    0 = 未指定缘由
    1 = 密钥已泄漏
    2 = 密钥被替换
    3 = 密钥再也不使用
    Q = 取消

 

这里须要输入咱们设置的私钥保护密码,才能解开私钥

 

上面一段的翻译,就是说让咱们保护好这个证书文件。,翻译过来大概是这个意思

请把这个文件转移到一个可隐藏起来的介质(如软盘)上;若是坏人可以取得这
份证书的话,那么他就能让您的密钥没法继续使用。把这份凭证打印出来再藏
到安全的地方也是很好的方法,以避免您的保存媒体损毁而没法读取。可是千万
当心:您的机器上的打印系统可能会在打印过程当中把这些数据临时在某个其余人也可以看获得的地方! 

 

 2.密钥管理

(1)参数列出系统中已有的密钥

gpg -k 或者 gpg --list-keys           //列举公钥
gpg -K 或者 gpg --list-secret-keys   //列举私钥

(第一行是公钥文件路径,第二行是公钥信息,第三行是用户ID,第四行是私钥信息。)

(2)删除密钥

gpg --delete-key [用户ID]         # 删除公钥
gpg --delete-secret-keys [用户ID]    # 删除私钥

(3)导出密钥

  公钥和私钥(gpg文件)都是以二进制形式存储,使用--armor参数能够导出为ASCII码形式。

  导出公钥文件

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

  导出私钥文件

gpg --armor  --export-secret-keys --output private-key.txt

 

3.加密解密

(1)公钥加密

假定有一个压缩文件test.zip,咱们对它进行加密。

  gpg --recipient [用户ID] --output test.zip.gpg --encrypt test.zip

encrypt参数表示对文件进行加密,encrypt参数指定源文件。recipient参数指定接收者的公钥,output参数指定加密后的文件名,

运行上面的命令后,test.zip.gpg就是已加密的文件。

 

(2)私钥解密

对方收到加密文件之后,就用本身的私钥解密。

  gpg --output test2.zip --decrypt test.zip.gpg 

 

output参数指定解密后生成的文件。decrypt参数指定须要解密的文件。解密文件保存为test2.zip。

 

 

参考

https://www.jianshu.com/p/268064e67719

https://www.jianshu.com/p/1257dbf3ed8e

相关文章
相关标签/搜索