一、引言
最近在对接银行向的时候,行内要求采用PGP方式对数据文件进行加密,首先我们需要生成密钥对,然后导出公钥给对方,导出
私钥以供后面程序解密使用。
关于GPG基本的介绍,在这里就不介绍了,大家自行百度就行了,本文主要分享项目中用的干货。
二、创建密钥对
$ gpg --gen-key
操作实例:
[fan 18:58:33]~$ gpg --gen-key
gpg (GnuPG) 1.4.20; Copyright (C) 2015 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
请选择您要使用的密钥种类:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (仅用于签名)
(4) RSA (仅用于签名)
您的选择?
RSA 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048) 4096
您所要求的密钥尺寸是 4096 位
请设定这把密钥的有效期限。
0 = 密钥永不过期
<n> = 密钥在 n 天后过期
<n>w = 密钥在 n 周后过期
<n>m = 密钥在 n 月后过期
<n>y = 密钥在 n 年后过期
密钥的有效期限是?(0)
密钥永远不会过期
以上正确吗?(y/n) y
您需要一个用户标识来辨识您的密钥;本软件会用真实姓名、注释和电子邮件地址组合
成用户标识,如下所示:
“Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>”
真实姓名: Fan
电子邮件地址: fan@qq.com
注释: github
您选定了这个用户标识:
“Fan(github) <fan@qq.com>”
更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? O
您需要一个密码来保护您的私钥。
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
....+++++
随机字节不够多。请再做一些其他的琐事,以使操作系统能搜集到更多的熵!
(还需要184字节