GnuPG教程(一)-CLI

原网址:http://blog.csdn.net/xianghongai/article/details/52861698

GnuPG 是一个开放源程序的与OpenPGP 标准兼容的非对称信息加密系统。

GnuPG四类组成

  • 私钥文件
  • 公钥文件
  • 公钥回收证书
  • 私钥密码

私钥和公钥运用

  • 发件人 
    明文—->[发件人私钥-数字签名]—->文件签名密文 
    明文—->[收件人公钥-加密]—->密文

  • 收件人 
    密文—->[收件人私钥-解密]—->明文 
    明文、文件签名密文—->[发件人公钥-验证签名]

公钥签认

  • 存在伪造公匙信息,对公匙进行有效确认
  • 为了安全起见,获取你朋友的公钥之后,还需要跟对方核对一下这个公钥(指纹值)是否真的为他所拥有(以防止得到伪造的密钥)
  • 导入公钥、核对公钥的指纹值、签名认可公钥、用这把绝对确信的公钥加密

生成钥匙

新建钥匙对(钥匙对,包括一把解密用私密钥匙和一把配对的加密用公开钥匙) 
gpg --gen-key

公钥指纹采样

gpg --fingerprint [用户ID]

列出密钥

gpg -k/--list-keys 列出所有公钥 
gpg -K/--list-secret-keys 列出所有私钥 
gpg --list-sigs 列出签认的密钥 
gpg --fingerprint 列出密钥和指纹

编辑密钥

可以修改钥匙的失效日期,加进一个指纹,对钥匙签名 
gpg --edit-key

删除密钥

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

公钥回收证书

忘记了私钥口令、私钥丢失、私钥被盗窃,发布这个证书来声明以前的公钥不再有效 
gpg -o/--output revoke.asc --gen-revoke [用户ID] 生成回收证书 
gpg --import revoke.asc 导入回收证书 
gpg --keyserver keyserverAddress --send [用户ID] 发送回收证书到服务器,声明原 GPG Key 作废

输出密钥

公钥(别人用):gpg -a/--armor -o/--output public.key --export [用户ID] 
私钥(自己用):gpg -a/--armor -o/--output private.key --export-secret-keys [用户ID]

  • -o 选项,可以放到一个文件里
  • -a 选项,来把钥匙写进一个7位的文件,而不是一个二进制文件

输入密钥

收到一把别人的公钥,加进钥匙数据库 
gpg --import [密钥文件] 
gpg --keyserver hkp://subkeys.pgp.net --search-keys [用户ID]

上传公钥

gpg --keyserver hkp://subkeys.pgp.net --send-keys [用户ID]

公钥签认

gpg --sign-key [用户ID] 
gpg --lsign-key [用户ID]


加密

gpg [options] --encrypt [filename] 
gpg -r/--recipient [用户ID] -o/--output doc.en -e/--encrypt doc

  • –recipient参数,指定接收者的公钥
  • –output参数,指定加密后的文件名
  • –encrypt参数,指定需要加密的源文件
  • demo.en,加密后的文件
  • doc,源文件

解密

gpg [options] --decrypt [filename] 
gpg -o/--output doc.de -d/--decrypt doc.en

  • –output参数,指定解密后生成的文件
  • –decrypt参数,指定需要解密的文件
  • demo.de,解密后的文件

对称加密与解密

加密:gpg --symmetric doc 会提示输出临时用的对称密钥/密码,不是私钥密码! 
eg. gpg -o doc.gpg -c doc 
解密:gpg -d doc.gpg


文件签名

[发件人] 为了保证文件传输的完整性,[收件人] 为了验证文件来源的可靠性, 
防止恶意篡改、欺诈钓鱼; 
[发件人] 用自己的 [私钥] 对私密文件数字签名,再用 [收件人] 的 [公钥] 对文件加密; 
[收件人] 用自己的 [私钥] 对加密文件解密,再用 [发件人] 的 [公钥] 对私密文件验证签名。

  • 数字签名,二进制储存:gpg -s/--sign doc 
    eg. gpg -o doc.sig -s doc
  • 文本签名,ASCII码:gpg --clearsign doc 
    eg. gpg -o doc.sig --clearsign doc 
    当前目录下生成 doc.gpg/doc.asc 文件,这就是签名后的文件(包含了原文件和签名)

  • 分离式签名,生成单独的签名文件,与文件内容分开存放 
    二进制储存:gpg -b/--detach-sign doc 
    ASCII码:gpg -a/--armor -b/--detach-sign doc 
    eg. gpg -o doc.sig -ab doc 
    当前目录下生成一个单独的签名文件doc.sig

签名+加密

gpg -u/--local-user [发件人ID] -r/--recipient [收件人ID] -a/--armor -s/--sign -e/--encrypt doc 
eg. gpg -o doc.sig -ser name doc

  • local-user参数,表示用(自己)发件人的私钥签名
  • recipient参数,表示用(对方)收件人的公钥加密
  • armor参数,表示采用ASCII码形式显示
  • sign参数,表示需要签名
  • encrypt参数,表示指定源文件

验证签名

收到别人签名后的文件,需要用对方的公钥验证签名是否为真 
gpg --verify doc.asc [doc] 分离式签名,加上原文件


GPG 配置文件目录

~/.gnupg/gpg.conf – 配置文件 
~/.gnupg/trustdb.gpg – 信任库 
~/.gnupg/pubring.gpg – 公钥库 
~/.gnupg/secring.gpg – 私钥库


gpg

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值