PGP密钥对生成和应用

一、安装方法

[root@centos gnupg-2.1.4]# yum install gnupg

二、检查安装是否成功

[root@centos gnupg-2.1.4]# gpg --help

如果屏幕显示GPG帮助,就表示安装成功。

三、生成密钥对

[root@centos gnupg-2.1.4]# gpg --gen-key
gpg (GnuPG) 2.0.22; Copyright (C) 2013 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.
 
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1    #选择密钥类型(这里我们选择加密算法是RSA、数字签名算法也是RSA)
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 2048          #设置密钥的比特数
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 1y           #设置密钥有效期(一年)
Key expires at Mon 14 Oct 2019 09:51:43 AM CST
Is this correct? (y/N) y   #确认有效性
 
GnuPG needs to construct a user ID to identify your key.
 
Real name: cakin           #输入姓名
Email address: 798102175@qq.com         #输入邮箱地址
Comment: cakin           #输入备注
You selected this USER-ID:
    "cakin (cakin) <798102175@qq.com>"
 
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O         #选择OK
You need a Passphrase to protect your secret key.       #口令输入界面
 
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: /root/.gnupg/trustdb.gpg: trustdb created             #创建信任网的数据库
gpg: key F15FE9FE marked as ultimately trusted          #自己生成的密钥将被设置为“绝对信任”
public and secret key created and signed.
 
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2019-10-14
pub   2048R/F15FE9FE 2018-10-14 [expires: 2019-10-14]    #F15FE9F密钥生成完毕
      Key fingerprint = 9B42 B3CC DBA4 B411 ACEA  F0F5 08C9 3BF3 F15F E9FE
uid                  cakin (cakin) <798102175@qq.com>
sub   2048R/E672385C 2018-10-14 [expires: 2019-10-14]

四、查看刚才生成的公钥

[root@centos gnupg-2.1.4]# gpg --export --armor E672385C
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
 
mQENBFvCof4BCACyb/vGxaAqlpT3X/XAkXwV34j7e+KhrBEKdDIjY3Uwc7tmXfcf
0gtyJ+XYGjo/umz9lfD1eCfmqHqXAX4yw6qCqSonb7MforYYVwIcC9MgCY4zJS93
mteKLnJBBdEinylC34EAYKKJ8+nVJ0j8J4AREcFELseqpzbzszKqAcj+ZSif5ov+
sOSaMxKJfFLmxw/7MQ/imL0pko93VQtWdIXVlCIlw9CcWNxkDsR1rOeHlm7nEPTb
tjzdto+nZR85J93eAWvJuFc+sQVh6jqtVf8d7/RxbCxLxyXCZITIvCY/G8exDE5c
3kzhV+lHrAnQVXUeLfkR73MaLUlyjmdkgt/XABEBAAG0IGNha2luIChjYWtpbikg
PDc5ODEwMjE3NUBxcS5jb20+iQE/BBMBAgApBQJbwqH+AhsDBQkB4TOABwsJCAcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQCMk78/Ff6f5r2wgAioaYmQx1RRKVTkmQ
bL6LmMTpswqqvTn2OwqZZGT2OHf8TqHcJbzemFO+RdRVLDNROspWUYqUAey0Ky3H
VXOM1CJrcWh6pXWgL5ZtHieDMulYaeWt9guDrEYt3a9KsnBfQD8f86uxpd55d7Lg
xHFADksUNVMK204eVZZ3FrK3cHLBu3vGtwyBQUAT4UTRE8W1a/CJC6259vJd0bc9
8wQ/QIYKLUKuCuF+6+xLucQrcv/0APWsdQQS9UOFGAcW/beNXkUTKazadeulLen0
KyovDVR2YMNrj73iP1bOdfIglCIQVe/3OsA1H1OXnzOO1n5G1Uex+fdZZAnrRkoW
CLszNLkBDQRbwqH+AQgAyX8bPz/mDC/gtFZjnhLkvaw35tfkTpTeNHrfZ2GFqLIE
C+jqX+2H4YwjXwX6D+eYLGzZxbQ3Mhi44Pf1dMmhD7m75qoALTlyQVmiMy3JqSuf
db31r29gcO5oq0RJks8visNTKCSNwDPT7M9Od7EyS6oD9wjOgSYwsAiThqDQGUDB
VzeVzVEW6L3DxUGuiPm+WSMEQCQWb3w2yXJTC5GmlB2jyweHh8VMNcoiIfPx95jL
1M/N92BJt8cZsQr1WsT/dprF0NVM33wDpHq5hjFffunB3jntcFH1N23lZ+gQCPs3
jBtua3kXm8aItvQlD3L7y6Ielq96Jbh+JAd0qgcmiwARAQABiQElBBgBAgAPBQJb
wqH+AhsMBQkB4TOAAAoJEAjJO/PxX+n+fvcIAK67lctvQSVLu/X836s/RJ2dwrWt
VJfjQwi4LP/ww1fsHlQ/RgI8h/wiJRCmzYrsT2cB7jvxVducNqmgg4z9/xAX1Jy9
TKmtk3qllnyeK29DkJN1P6RBTchlRImQAID3w7QEB8dj3sCNlQNgV8oB4YWqVxjE
PE+uaQQGa4VBOB40iAr45bfWLVlkuwqYRbI3GZNjsbCQKcfQO1HD8/87zKXHTEUa
neVGfQVscSqq4LYDlkDFDfs6r7uckD2w7vi4M3YjG2XH7CwAJDxAE5HUX8EaMxU2
RAHumd1Z9Otqfds38yeHTxTGhCszu3DteYWX6f0kwuZmLfAGUT7Kv/idJBY=
=4oaQ
-----END PGP PUBLIC KEY BLOCK-----

五、列出密钥

#list-keys 参数列出系统已有的密钥
[root@centos gnupg-2.1.4]# gpg --list-keys
#显示公钥文件名
/root/.gnupg/pubring.gpg
#显示公钥特征(4096位,Hash字符串和生成时间)
pub   2048R/F15FE9FE 2018-10-14 [expires: 2019-10-14]
#显示用户ID
uid                  cakin (cakin) <798102175@qq.com>
#显示私钥特征
sub   2048R/E672385C 2018-10-14 [expires: 2019-10-14]

六、将公钥导入文件

公钥文件(.gnupg/pubring.gpg)以二进制形式储存,armor 参数可以将其转换为 ASCII 码显示。
"用户 ID"指定哪个用户的公钥,output 参数指定输出文件名gpgkey.pub.asc)。

[root@centos gnupg-2.1.4]# gpg --armor --output gpgkey.pub.asc --export cakin
[root@centos gnupg-2.1.4]# cat gpgkey.pub.asc
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
 
mQENBFvCof4BCACyb/vGxaAqlpT3X/XAkXwV34j7e+KhrBEKdDIjY3Uwc7tmXfcf
0gtyJ+XYGjo/umz9lfD1eCfmqHqXAX4yw6qCqSonb7MforYYVwIcC9MgCY4zJS93
mteKLnJBBdEinylC34EAYKKJ8+nVJ0j8J4AREcFELseqpzbzszKqAcj+ZSif5ov+
sOSaMxKJfFLmxw/7MQ/imL0pko93VQtWdIXVlCIlw9CcWNxkDsR1rOeHlm7nEPTb
tjzdto+nZR85J93eAWvJuFc+sQVh6jqtVf8d7/RxbCxLxyXCZITIvCY/G8exDE5c
3kzhV+lHrAnQVXUeLfkR73MaLUlyjmdkgt/XABEBAAG0IGNha2luIChjYWtpbikg
PDc5ODEwMjE3NUBxcS5jb20+iQE/BBMBAgApBQJbwqH+AhsDBQkB4TOABwsJCAcD
AgEGFQgCCQoLBBYCAwECHgECF4AACgkQCMk78/Ff6f5r2wgAioaYmQx1RRKVTkmQ
bL6LmMTpswqqvTn2OwqZZGT2OHf8TqHcJbzemFO+RdRVLDNROspWUYqUAey0Ky3H
VXOM1CJrcWh6pXWgL5ZtHieDMulYaeWt9guDrEYt3a9KsnBfQD8f86uxpd55d7Lg
xHFADksUNVMK204eVZZ3FrK3cHLBu3vGtwyBQUAT4UTRE8W1a/CJC6259vJd0bc9
8wQ/QIYKLUKuCuF+6+xLucQrcv/0APWsdQQS9UOFGAcW/beNXkUTKazadeulLen0
KyovDVR2YMNrj73iP1bOdfIglCIQVe/3OsA1H1OXnzOO1n5G1Uex+fdZZAnrRkoW
CLszNLkBDQRbwqH+AQgAyX8bPz/mDC/gtFZjnhLkvaw35tfkTpTeNHrfZ2GFqLIE
C+jqX+2H4YwjXwX6D+eYLGzZxbQ3Mhi44Pf1dMmhD7m75qoALTlyQVmiMy3JqSuf
db31r29gcO5oq0RJks8visNTKCSNwDPT7M9Od7EyS6oD9wjOgSYwsAiThqDQGUDB
VzeVzVEW6L3DxUGuiPm+WSMEQCQWb3w2yXJTC5GmlB2jyweHh8VMNcoiIfPx95jL
1M/N92BJt8cZsQr1WsT/dprF0NVM33wDpHq5hjFffunB3jntcFH1N23lZ+gQCPs3
jBtua3kXm8aItvQlD3L7y6Ielq96Jbh+JAd0qgcmiwARAQABiQElBBgBAgAPBQJb
wqH+AhsMBQkB4TOAAAoJEAjJO/PxX+n+fvcIAK67lctvQSVLu/X836s/RJ2dwrWt
VJfjQwi4LP/ww1fsHlQ/RgI8h/wiJRCmzYrsT2cB7jvxVducNqmgg4z9/xAX1Jy9
TKmtk3qllnyeK29DkJN1P6RBTchlRImQAID3w7QEB8dj3sCNlQNgV8oB4YWqVxjE
PE+uaQQGa4VBOB40iAr45bfWLVlkuwqYRbI3GZNjsbCQKcfQO1HD8/87zKXHTEUa
neVGfQVscSqq4LYDlkDFDfs6r7uckD2w7vi4M3YjG2XH7CwAJDxAE5HUX8EaMxU2
RAHumd1Z9Otqfds38yeHTxTGhCszu3DteYWX6f0kwuZmLfAGUT7Kv/idJBY=
=4oaQ
-----END PGP PUBLIC KEY BLOCK-----

七、导出私钥

export-secret-keys 参数可以转换私钥

[root@centos gnupg-2.1.4]# gpg --armor --output private-key.txt --export-secret-keys
[root@centos gnupg-2.1.4]# cat private-key.txt
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
 
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
=EWAX
-----END PGP PRIVATE KEY BLOCK-----

===================================================================================================

八、PGP密钥对的使用

1.列出所有公钥和私钥

    gpg -k
    gpg -K

2.导入别人的公钥

gpg --import gpgkey.pub.asc

3.非对称加密文件
加密:当你导入完好友的公钥后,就可以用朋友的公钥加密文件了,

gpg -e -r username filename (-r 表示指定用户)
example: gpg -e -r cakin test.c 

4.非对称解密文件
解密:上面的操作会生成 filename.gpg 加密文件,之后你可以把此文件发送给好友了,对方就可以用自已的密钥来解密文件了。

gpg --output 新文件名 --decrypt 加密文件名     
example:gpg --output aa.c --decrypt test.c.gpg

参考1
参考2
参考3 基本操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值