欢迎各位兄弟 发布技术文章
这里的技术是共享的
ftp://ftp.gnupg.ca/binary/gnupg-w32cli-1.4.9.exe
C:\Program Files\GNU\GnuPG
??\My Documents\gpg
在这个文件夹里面创建一个文本文件,然后更名为一个批处理文件,比如startgpg.bat,文件内容如下:
@set path=C:\Program Files\GNU\GnuPG;%PATH%;
@echo ---**欢迎使用gpg加密系统**---
@echo 帮助请用命令gpg -h
@cmd
其实就是临时指定了gpg命令的路径。
运行startgpg.bat,你就进入一个“命令与提示符”窗口了。你可以先使用gpg -h看看帮助信息。
现在,我们开始制作一把密钥。这里是一次产生钥匙的全过程:
---**欢迎使用gpg加密系统**---
帮助请用命令gpg -h
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.
E:\My Documents\gpg>gpg --gen-key //产生钥匙的命令
gpg (GnuPG) 1.4.9; Copyright (C) 2008 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
DSA 密钥对会有 1024 位。
ELG-E 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048)
您所要求的密钥尺寸是 2048 位
请设定这把密钥的有效期限。
密钥的有效期限是?(0)
密钥永远不会过期
以上正确吗?(y/n)y
您需要一个用户标识来辨识您的密钥;本软件会用真实姓名、注释和电子邮件地址组合
成用户标识,如下所示:
真实姓名:Long Fei
电子邮件地址:fleet.long@gmail.com
注释:win2k3
您选定了这个用户标识:
更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?o
您需要一个密码来保护您的私钥。
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
.++++++++++++++++++++.+++++++++++++++++++++++++.+++++..++++++++++++++++++++..+++
+++++++++++++++++..++++++++++.+++++++++++++++.+++++++++++++++>.++++++++++.......
.......>.+++++...................................................<+++++.........
...............................<+++++.........................................++
+++
gpg: NOTE: you should run 'diskperf -y' to enable the disk statistics
gpg: NOTE: you should run 'diskperf -y' to enable the disk statistics
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
++++++++++.++++++++++..+++++......+++++...+++++++++++++++.++++++++++++++++++++++
+++.+++++++++++++++++++++++++..++++++++++.+++++.++++++++++.+++++++++++++++++++++
++++>.+++++...+++++.........>.+++++.<..+++++.............+++++^^^^^^^^^^^
gpg: 密钥 63E5D69B 被标记为绝对信任
公钥和私钥已经生成并经签名。
gpg: 正在检查信任度数据库
gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性:
pub
密钥指纹 = 409D 9321 9A1A 7007 B5B7
uid
sub
现在,我们用gpg --list-keys,就可以看到刚才产生的公钥了;
查看私钥用gpg -K
pub
uid
sub
现在,我们就可以导出公钥,发布给需要把信息加密给我们的人。
gpg -a --export -o mykey fleet.long@gmail.com
-a: 以ASCII发布,这样比二进制文件看起来整洁一些;
--export: 导出公钥;
-o mykey: 导出的信息写入文件mykey;
fleet.long@gmail.com: 作为UID标识,即我们刚才建立的密钥。
这样,我们就得到了文件mykey,我们可以把这个文件传给别人,也可以直接把文件的内容贴出来,别人把这些信息写入一个文本文件,也可以作为key来导入。假如另外一台电脑上的人要导入这个密钥,只需要简单的使用命令:
gpg --import mykey
假设我们得到了另外一把公钥mykey2,我们先将其导入公钥环:
gpg --import mykey2
现在我们用gpg --list-keys,就会发现多了把钥匙:
C:/Documents and Settings/Administrator/Application Data/gnupg\pubring.gpg
--------------------------------------------------------------------------
pub
uid
sub
pub
uid
sub
这样,如果我们要为lf426@sina.com这个UID加密的话,用这样的命令:(假设需要加密的文件是tp.txt)
gpg -seav -u fleet.long@gmail.com -r lf426@sina.com tp.txt
然后gpg会提示你输入用于对fleet.long@gmail.com进行数字签名所需要的密码,正确输入后就产生一个tp.txt.asc文件。当然,我们也可以用参数-o指定加密产生的文件名。
-s: 数字签名;
-e: 加密;
-a: 以ASCII形式;
-v: 显示gpg工作的详细信息;
-u: 用于签名的UID(fleet.long@gmail.com);
-r:使用这个UID的公钥进行加密(lf426@sina.com);
最后产生的tp.txt.asc文件,只有lf426@sina.com才能解密。
如果我们得到了一个用自己公钥加密后的文件,例如fleet.long@gmail.com得到了一个用其公钥加密的文件tp2.txt.asc,简单的使用gpg不带参数的进行解密就可以了:
gpg tp2.txt.asc
您需要输入密码,才能解开这个用户的私钥:“Long Fei (win2k3) <fleet.long@gmail.co
m>”
2048 位的 ELG-E 密钥,钥匙号 B6A44269,建立于 2008-05-25 (主钥匙号 63E5D69B)
gpg: 由 2048 位的 ELG-E 密钥加密,钥匙号为 B6A44269、生成于 2008-05-25
gpg: 于 05/26/08 03:22:48 创建的签名,使用 DSA,钥匙号 A223BCBA
gpg: 完好的签名,来自于“lf_win32 (at win2k3) <lf426@sina.com>”
从这些信息,我们可以看到这个文件的数字签名是lf426@sina.com的,并且得到了解密后的文件tp2.txt。
到这里,我们就把gpg最简单的使用介绍完毕了。希望大家能觉得有帮助。
官方有篇中文教程大家可以在这里看:
http://www.gnupg.org/howtos/ch/index.html
来自 http://blog.sina.com.cn/s/blog_53d71bf00100a36f.html