gpg加密与签名

来源:互联网 发布:春秋战国士阶层 知乎 编辑:程序博客网 时间:2024/05/01 12:38

参考资料 

http://www.gnupg.org/howtos/zh/GPGMiniHowto-3.html


例子:

1、先产生密钥对
#gpg --gen-key
这样会在用户家目录生成一个./gnupg的目录,然后会要求你回答一系列问题,前面三个按默认即可。
进入到real name,是要求你输入用户ID,注意姓名要5个字符长。这里假设为davidway
在Email address处,填写上自己的邮箱地址,假设为davidway@yahoo.com.cn
在comment处,填写一些注释信息
输入大写字母“O”,回车确认。
在Enter passphrase处,输入导入私钥用的密码句,这里假设为davidway,密码句是用来保护私钥的,一定要牢记。这里输入时是没有回显的,且要输入两次。

2、导出公钥(公钥应公之于众,以便别人使用你的公钥来加密文件)
命令各式:
#gpg -o name.gpg -a --export name
其中name为用户ID
name.gpg为导出的公钥文件,文件名必须后缀为gpg
例如:
#gpg -o davidway.gpg -a --export davidway
这样就把用户ID为davidway的公钥导出来了。

3、导入别人的公钥(以便给别人发送加密文件,公钥用来加密)
#gpg --import someone.gpg
上面someone.gpg是别人的公钥

4、编辑公钥,以验证导入的公钥的真实性
#gpg --edit-key someone
someone是别人的用户ID
出现命令提示符 >
>fpr
查看用户someone的公钥的指纹,之后应设法核对指纹,以证明真实性。如果真实,则可以签署。
查看someone的指纹,用下面这个命令
#gpg --list-key

>sign
签署这个公钥,这样以后再使用它加密时,就不会再警告

>check
检查用户someone的公钥已有的签名
出现sig! 3   sig! 1   表示已完成。

输入quit,回车,再输入y保存退出

5、查看公钥
#gpg --list-key

6、用别人的公钥加密文件
命令格式:
#gpg -o doc.gpg -er name doc
其中name是选择谁的公钥加密,即谁是文件的接收者。
doc为要加密的文件,即原文件
doc.gpg为命令执行后生成的加密的文件,这里要先指定好文件名
例如:
#gpg -o test.gpg -er someone test
加密test文件后,生成test.gpg加密文件,发送给someone

7、解密文件
命令格式:
#gpg -o doc.new -d doc.gpg
其中doc.gpg是别人发给自己的加密过的文件

doc.new是解密后生成的文件
d表示解密
例如:
#gpg -o test.new -d test.gpg
解密需导入私钥,这时会提示输入密码句,以导出私钥来解密

8、使用对称密钥加密
#gpg -o doc.gpg -c doc
这种加密适用于本机文件加密,这时提示输入的密码句和私钥密码句没有联系,但一样不能忘记,因为解密时需要输入同样的密码句。

9、数字签名
命令格式:
#gpg -o doc.sig -s doc
其中doc是原文件,doc.sig包含了原文件和签名,是二进制的。这个命令会要求你输入你的私钥的密码句。
#gpg -o doc.sig -ser name doc
既签名又加密

10、文本签名
#gpg -o doc.sig --clearsign doc
这样产生的doc.sig同样包含原文件和签名,其中签名是文本的,而原文件不变。

11、分离式签名
#gpg -o doc.sig -ab doc
doc.sig仅包括签名,分离式签名的意思是原文件和签名是分开的。
b 表示分离式签名detach-sign

12、验证签名
#gpg --verify doc.sig  [doc]
验证之前必须导入文件作者的公钥,对于分离式签名,最后还要加上原文件,即后面的doc。

13、可以显示所有现有的钥匙。 要想同时显示签名,用

gpg --list-sigs

14、要想见到钥匙的指纹,敲入:
gpg --fingerprint
用户需要见到”指纹”来确认某人的确是其自称是的人(就象在电话中一样)。 这个命令将会产生一列相对较小的数字。
15、要删除一把公钥,你可以敲
gpg --delete-key UID
要删除一把密钥,你可以敲
gpg --delete-secret-key
16因为好些原因,你可以想要取消一把已经存在的钥匙,例如:密钥被盗了或被不该得到它的人得到,用户身份识别改变了,钥匙不够长了,等等。对上述各种情况,取消钥匙的命令是:

gpg --gen-revoke

该命令将产生一份取消钥匙证书。 要这么做,一定要先有密钥! 否则任何人都能取消你的钥匙。 这种方法有一个缺点: 如果我不知道通行句就用不了密钥。但用不了密钥,我就不能取消我的钥匙。 为解决这个问题,在你产生钥匙对的时候就产生一份取消钥匙证书是一种明智的做法。 如果你这样做的话,一定要把证书保存好! 你可以把它放在磁盘上,纸张上,等等。 一定要保证证书不落入坏人之手!!! 否则别人就可以发出该证书取消你的钥匙,使你的钥匙作废。

0 0
原创粉丝点击