<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>非对称 &#8211; bhzhuOS爱好者(原StartOS爱好者)</title>
	<atom:link href="https://www.bhzhu203.com/tag/%E9%9D%9E%E5%AF%B9%E7%A7%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bhzhu203.com</link>
	<description>QQ群号125732839</description>
	<lastBuildDate>Thu, 28 Apr 2016 06:39:34 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.7</generator>
	<item>
		<title>用GnuPG进行信息加密和解密</title>
		<link>https://www.bhzhu203.com/2016/04/28/%e7%94%a8gnupg%e8%bf%9b%e8%a1%8c%e4%bf%a1%e6%81%af%e5%8a%a0%e5%af%86%e5%92%8c%e8%a7%a3%e5%af%86/</link>
		
		<dc:creator><![CDATA[bhzhu203]]></dc:creator>
		<pubDate>Thu, 28 Apr 2016 06:39:34 +0000</pubDate>
				<category><![CDATA[linux知识]]></category>
		<category><![CDATA[加密]]></category>
		<category><![CDATA[解密]]></category>
		<category><![CDATA[非对称]]></category>
		<guid isPermaLink="false">http://www.bhzhu203.com/?p=134</guid>

					<description><![CDATA[GnuPG是一个用来进行非对称加密的免费软件。先说说什么是非对称加密。传统的加密 [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="panel-body content">GnuPG是一个用来进行非对称加密的免费软件。先说说什么是非对称加密。传统的加密手段往往是使用同一个密码进行加密和解密。例如你加密时用的密 码是“abc”，则解密时也要使用“abc”才行。这样就存在一个问题，你不能够把一段加密信息发送给你的朋友。试想，如果采用这种加密方式把信息发送给 你的朋友时，你的朋友必须要知道你的密码才能把你的信息解密出来。但你如何保证你的朋友是绝对可靠的呢？也就是说，如果你的朋友把你的密码告诉了别人，你 的密码就不再安全了。</p>
<p>非对称加密采用的是另一种思想。它会给你产生两个密钥，一个称为“公钥”，另一个称为“私钥”。公钥是可以公开的，你尽管把它传给别人；私钥你一定 要保管好不让其他任何人知道。当某人得到你的公钥后，他就可以给你发送加密信息了。具体来说，他把他要发给你的信息用你的公钥加密后发给你，加密的信息只 能用你的私钥去解密。这样，因为世界上除了你以外没有别人知道你的私钥，所以即使别人看到发送给你的加密信息他也无法解密，甚至连发送者本人也不行。因为 他不知道你的私钥。简单说来，就是用公钥去加密；用对应的私钥去解密。想给谁发送加密信息，首先要得到他的公钥。</p>
<p>支持非对称加密的软件有多种，最著名的可能是美国的PGP了，不过它是个商业软件，价格不便宜。对于加密软件，我反对使用破解软件，因为如果信息需 要加密的话，肯定是非常重要的信息，破解软件无法保证加密的安全可靠。因此我建议使用免费开源的GnuPG软件进行信息的加密和解密。</p>
<p>首先去GnuPG的官方网站下载你的操作系统的软件包（）。 然后按照安装向导进行安装。有一步是让你选择语言的，建议选择zh_CN &#8211; Chinese (simplified)，这样会使GnuPG的输出信息为中文。默认的安装目录是C:Program FilesGNUGnuPG，建议把它加入到PATH环境变量中去。因为GnuPG是一个命令行的软件，将安装目录加入PATH后使用会方便得多。</p>
<p>接下来该使用GnuPG来生成你的公钥和私钥了。打开命令提示符，输入gpg &#8211;gen-key。GnuPG会提示你 选择密钥的种类，这里选择默认的第一项“DSA 和 ElGamal”，其他两个都只能用于签名而不能用来加密。按回车接受默认选择。接下来让你设置密钥的长度，数值在1024到4096位之间。长度越长， 安全程度越高，但相应的加密和解密时的计算量也就越大。其实即使是最小值1024位，估计用大型计算机去破解的话也得用好几个月的时间。默认长度是 2048位，足够安全了。然后设置你的密钥有效期，按照提示输入，0表示永不过期。后来确认无误后，输入y确定。</p>
<p>接着输入你的姓名、电子邮件和注释。这些信息将用来标识你的身份。然后按O确认。接着设置你的私钥密码。注意这个密码并不等同于你的私钥，它只是用 来保护私钥不会被其他人利用。私钥是一个很大的整数，你通常是不会去记住的。但当你需要用私钥去解密信息时，GnuPG会提示你输入密码，只有密码输对 了，GnuPG才会去读取你的私钥去解密信息。</p>
<p>输入完两次密码后，GnuPG会提示你动动鼠标键盘之类的，以便产生一个“足够随机”的随机数，最终生成一对公钥和私钥。</p>
<p>至此，一对儿密钥已经产生了。你需要把公钥告诉你的朋友。怎么样得到自己的公钥呢？用gpg的&#8211;export选项。下面这个命令会输出我的公钥（假定我在上面生成密钥时设定的姓名为“Wang Jinbo”）：<br />
gpg &#8211;export &#8220;Wang Jinbo&#8221;<br />
你看到的应该是一大堆乱码，这其实就是公钥。如果希望公钥看起来整齐一些，可以使用-a选项设置输出为ASCII字符：<br />
gpg &#8211;export -a &#8220;Wang Jinbo&#8221;</p>
<p>把上面的输出重定向到一个文件中去，例如wang.key：<br />
gpg &#8211;export -a &#8220;Wang Jinbo&#8221; &gt; wang.key<br />
这样，wang.key这个文件就是我的公钥了，我可以把它放到我的网站上或者通过电子邮件发送给我的朋友们。</p>
<p>如果你得到了我的公钥，如何用它去加密呢？首先你需要导入我的公钥文件。<br />
gpg &#8211;import wang.key<br />
这会将我的公钥导入到你的“钥匙环”中。这样以后你就可以用我的公钥给我发送加密信息了。下面是具体的做法。</p>
<p>假设你给我发送的信息是hello.txt这个文件。现在用GnuPG来加密：<br />
gpg -e -r &#8220;Wang Jinbo&#8221; hello.txt<br />
这会在当前目录下生成hello.txt.gpg这个文件，这个就是就是hello.txt被加密后的结果。你可以用记事本打开看看，应该是一大堆无意义的乱码。然后你就可以把这个文件通过电子邮件发到我的邮箱中去。我收到后，用下面的方法去解密。<br />
gpg -d hello.txt.gpg<br />
GnuPG会提示我输入密码，也就是我在gpg &#8211;gen-key中设定的密码。密码输入完后，GnuPG会在屏幕上立刻显示出解密以后的内容。如果被加密的不是文本内容，比如是一个图片，则可以将输出重定向到一个文件中去：<br />
gpg -d hello.png.gpg &gt; hello.png</p>
<p>转自：http://hi.baidu.com/zhishang18/item/078c65cf4b6c5c0bc610b22d</p></div>
<div class="panel-footer"></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
