注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

c.pass 的博客

众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。

 
 
 

日志

 
 

linux下加密文件  

2010-07-18 09:38:58|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
利用GnuPG加密文件

gpg是pgp加密软件的免费版本,由Gnu工程开发,不存在任何专利或许可问题。它符合RFC2440号文档所定义的OpenPGP标准。gpg在加密文件时使用的是公共密钥加密方法。下面介绍使用gpg的步骤:

创建gpg密钥,过程如下:

debian:~# gpg --gen-key
gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
请选择您要使用的密钥种类:
(1) DSA 和 ElGamal (默认)
(2) DSA (仅用于签名)
(5) RSA (仅用于签名)
您的选择? 1 #选择密钥种类
DSA 密钥对会有 1024 位。
ELG-E 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048) #选择密钥长度
您所要求的密钥尺寸是 2048 位
请设定这把密钥的有效期限。
0 = 密钥永不过期
<n> = 密钥在 n 天后过期
<n>w = 密钥在 n 周后过期
<n>m = 密钥在 n 月后过期
<n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) #选择密钥有效期
密钥永远不会过期
以上正确吗?(y/n)y #确认以上选择
您需要一个用户标识来辨识您的密钥;本软件会用真实姓名、注释和电子邮件地址组合
成用户标识,如下所示:
“Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>”
真实姓名:jims.yang #输入用户标识,包括真实姓名,邮件地址和注释
电子邮件地址:jims.yang@gmail.com
注释:jims.yang's GnuPG key
您选定了这个用户标识:
“jims.yang (jims.yang's GnuPG key) <jims.yang@gmail.com>”
更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?o #确认以上输入
您需要一个密码来保护您的私钥。 #输入口令短语
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
.++++++++++++++++++++++++++++++.+++++++++++++++.+++++.++++++++++.+++++++++++++++..++++++++++..+++++++++++++++++++++++++..++++++++++++++++++++.+++++.>+++++.............+++++
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
+++++.+++++.++++++++++....+++++...+++++..+++++++++++++++.++++++++++++++++++++..++++++++++.++++++++++.+++++.+++++++++++++++++++++++++++++++++++....++++++++++.+++++++++++++++....>+++++.+++++^^^
gpg: 密钥 4688E183 被标记为绝对信任
公钥和私钥已经生成并经签名。
gpg: 正在检查信任度数据库
gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性: 1 已签名: 0 信任度:0-,0q,0n,0m,0f,1u
pub 1024D/4688E183 2006-10-31
密钥指纹 = 7C15 5515 0E08 9ACB 37C1 0C6F 67BE 56AB 4688 E183
uid jims.yang (jims.yang's GnuPG key) <jims.yang@gmail.com>
sub 2048g/53BF4033 2006-10-31
debian:~#

完成密钥创建后,生成一对密钥,一个是私用密钥,一个是公共密钥。私用密钥要保存好,不能泄漏给任何人,私钥已被你输入的口令短语加密。公钥需分发给其他人,用来加密将要发送给你的文件。你收到加密文件后,就可用你的私钥进行解密。公钥可用以下命令提取出来:

debian:~# gpg --armor --export > jims.key
debian:~# cat jims.key
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)
mQGiBEVGv0URBACC7hr4AYAgHwFcBpfnQr2taKtfm2Pklcf7GBBnwjFycvValgiK
yu7GdVNuvf+Nyv1z/gmOHJCuYmeIOkKrNqBc/8sAYqvoztDUTeP+UhGqELNzQouV
a1er9HSzabsRzSYmtqW7ZdXV05MRGFfM8KJDP2PbXL00tgaMbLSkrPUQcwCgpcLJ
9Hv6cirDDh1xAtvW7oVuVTsD/1KyRnsv1V+vMU9x9+U/zA4Ai3ZmEqAGwTQuLFUg
q8+ex9sWmOHOG/VO7O4MdgH1Go+KzaU60gkCV3md23LGSBKc1kBPmFkb5pNrQM5M
SCtbBvRb54pTbajdxaPpzydnagOlBtSbjQ4eJEAioFq1mzUlStZjAJfN0UuMLvz4
JWffA/9ZIQ1pb7AYelZi+soOHDnAtZnsg7rN9FfzYTSg+XrtulC0jurVcUppQgd6
R+jq89A7IWfeK0QcQ4QuBe3uQ4ZgxBLY6qo13qac7V3xM3LmknhTI49x3DdjpHgf
nGYigS3w0frXtOh/qupwsojiX3H9V+uLk1vit/UvACweAksl6rQ3amltcy55YW5n
IChqaW1zLnlhbmcncyBHbnVQRyBrZXkpIDxqaW1zLnlhbmdAZ21haWwuY29tPohg
BBMRAgAgBQJFRr9FAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQZ75Wq0aI
4YNnJgCgjxl6WEm11HoVbJhpnbTQ/4YN79YAn3KwBzZLMTWfpQbzghMXGZsWrO/6
uQINBEVGv0wQCAC5rug6OD73TiNJN0o5FepUbl0Cp/5IIbnOcFQQNEP/r/ShjByv
ZP8zU3ZgxHQe5n7kqOZy9SMnZ8A75XYDRqhyBjHWnXRqXGgqBnvj43TfzUt7c45I
C3mZT6K6l4mS1RkO6Khps//PrrLFQjMCkYL4ih5/yJkV70Co9t52wuBMfyjvAWyh
WdxJ4YAaWs34vn9etfTaSfSvDveMoh3skfUzy0ftxf7vzJGvrosWaYTn5EDyVx5k
hXNAXNwuewKULn4tFZVWcDjDQ8Bqg4ai8X4Raw5inuC4JI4Au7dwIWI24vJxWRH6
mXs+E0EccrWUcHw2VsD2m9KC/3G3n7OD2HSXAAMFB/42hMTFY9iXs4U14kP5ac7x
NgdkK8ZRPQi5BOzqZ5f9MeeHV1g7rlhOIMmbYFNn5aGfc6DR1p3moLTbME238Mbp
GAejMNLN4NSLgPOCJykwDNrYA0vLnZlB9uswKBETdEWIX1GdguWBkVY0GbPLs0JO
bcym0i2Ro3TfC9oAUSsXrul+NyXGpRsQ3qFpOXINEITb0aMwdKPYrt5jQqYQCrcP
Nwi4zaEh9Y56X9mUhHvMl4hehmP8OEHCf6JDP6uzMxjY9LHWs0j0NhHGQqClJQbx
SJYuEmCZ7ITEfM5dGbYc6Xh+XQkggsGpjWXEmaYiQcrx2eVJk+uGYu4+zEYO70RX
iEkEGBECAAkFAkVGv0wCGwwACgkQZ75Wq0aI4YPflQCfQgzT29btw7b5TAK6kG5Z
isr1oeAAn0JgNmaJf5AwEwhixIiUVxZYHnfe
=Uff0
-----END PGP PUBLIC KEY BLOCK-----
debian:~#

--armor开关表示以ASCII格式输出内容。生成的jims.key文件的内容就是我的公钥,我们可以通过电子邮件把公钥分发出 去。当我们收到很多人的公钥时,为了使用和保管方便,gpg提供一个文件专门存放公钥。这个文件叫pubring.gpg,位于~/.gnupg目录下。 用以下命令可把公钥导入该文件。

debian:~# gpg --import test.key

重复以上命令可以添加多个公钥,要查看pubring.gpg文件中保存了多少个公钥,可用以下命令:

debian:~# gpg -kv
/root/.gnupg/pubring.gpg
------------------------
pub 1024D/4688E183 2006-10-31
uid jims.yang (jims.yang's GnuPG key) <jims.yang@gmail.com>
sub 2048g/53BF4033 2006-10-31

下面测试使用公钥来加密一个文件。

debian:~# gpg -ea -r 4688E183 a.py

-e开关表示加密,-a开关(--armor)表示使用ASCII格式加密,-r开关指定加密公钥。运行该命令后,在当前目录下会生成 一个a.py.asc文件,该文件就是经过加密的文件。使用-a开头生成的加密文件比源文件大了不少,我们也可不用-a开头,生成的加密文件后缀会变 为.gpg,文件大小与源文件相差不大。那我们什么时候应该使用-a开关,什么时候不应该使用呢?当我们通过电子邮件附件的形式发送加密文件,由于不同邮 件服务器或邮件客户端对附件的处理会有不同,所以我们在这种情况下应该使用-a开关,把加密文件存成ASCII格式。如果加密文件是通过HTTP、scp 或ftp等协议进行传输,则不用使用-a开关,以节省磁盘空间。总而言之,只要用来传送加密文件的传输机制有能力处理二进制文件,就不需要加-a加关。

当我们收到使用公钥加密的文件时,就可以使用我们私钥进行解密。

debian:~# gpg -o a.py -d a.py.asc
您需要输入密码,才能解开这个用户的私钥:“jims.yang (jims.yang's GnuPG key) <jims.yang@gmail.com>”
2048 位的 ELG-E 密钥,钥匙号 53BF4033,建立于 2006-10-31 (主钥匙号 4688E183)
gpg: 由 2048 位的 ELG-E 密钥加密,钥匙号为 53BF4033、生成于 2006-10-31
“jims.yang (jims.yang's GnuPG key) <jims.yang@gmail.com>”

-o选项表示输出的文件名,-d选项表示进行解密操作。

[转]http://www.ringkee.com/note/opensource/debian/ch09s48.html

网上也有只在本机上使用的语法

gpg -c filename    #加密文件

gpg filename.gpg   #解密文件

摘:http://hi.baidu.com/sxpspace/blog/item/4d14e997f69b9e6b55fb96c2.html

  评论这张
 
阅读(405)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017