GPG 加密解密简明教程
来源:互联网 发布:汽车牌照翻转架 淘宝 编辑:程序博客网 时间:2024/06/14 14:44
您可以用合作网站帐号登录:
# 注册 /登入
最新文章
- Google+上的 Ubuntu 中文社群
- [活动]2012年度最受欢迎中国开源软件评选
- ScreenCloud:截图及分享工具
- 2个 Indicator: Google-calendar-indicator 及 Indicator-system-monitor
- UberWriter :又一款 Linux 下的 Markdown编辑器
- Linux Mint 14 Nadia发布
- 神奇的代码:用 Python生成分形图片
- 深度影音 2.0版发布
- elementary OS Luna Beta 1
- Skype for linux 4.1发布,整合 Live Messenger
Blogroll
- FreeBSD
- FreeBSD China
- Full Circle
- Linux Wiki
- LinuxDeepin
- LinuxToy.org
- PT Ubuntu
- SHLUG
- Ubuntu 中文论坛
# 文章提交注意事项
1.可使用 Markdown语法来编写文章。
2.编写文章时加上至少一条新闻来源的链接;原创性文章,可加入相关信息(如涉及的个人Blog)的链接。
3.文章提交后请耐心等待,我们会尽快审核并发布。
# Feed /Twitter /新浪微博 / Google+
# Google Plus 上的 Ubuntu 中文社群
# 本站架设于 PhotonVPS ,由 FreeBSD 强力驱动,请赞助我们用于支付服务器费用!
# 最牛 B 的 LinuxShell 命令: PDF 下载
# Markdown语法说明 (简体中文版)
# Serverstatus and uptime!
文章归档
- 2012年十二月 (2)
- 2012年十一月 (17)
- 2012年十月 (4)
- 2012年九月 (10)
- 2012年八月 (4)
- 2012年七月 (7)
- 2012年六月 (3)
- 2012年五月 (10)
- 2012年四月 (8)
- 2012年三月 (9)
- 2012年二月 (9)
- 2012年一月 (14)
- 2011年十二月 (20)
- 2011年十一月 (16)
- 2011年十月 (22)
- 2011年九月 (23)
- 2011年八月 (17)
- 2011年七月 (22)
- 2011年六月 (44)
- 2011年五月 (64)
- 2011年四月 (52)
- 2011年三月 (56)
- 2011年二月 (41)
- 2011年一月 (84)
- 2010年十二月 (77)
- 2010年十一月 (82)
- 2010年十月 (60)
- 2010年九月 (70)
- 2010年八月 (68)
- 2010年七月 (66)
GPG 加密解密简明教程
10 一
2011
# 作者: riku/ 本文采用CC BY-NC-SA 2.5协议授权,转载请注明本文链接。
大家都知道,互联网上充斥着大量的明文传输方式,可以说绝对是不安全地带。那么,我们如何保证在不安全的互联网中更可靠的传输重要数据呢?个人认为最好的方式之一就是使用 GPG 工具进行加密。此文只是简单介绍了 GPG 的常规用法,重在推广和普及 GPG 加密工具,详细的使用请参见 GPG 手册。
# 名词解释
RSA / DSA / ElGamal : 是指加密算法
GPG :(全称 GnuPG ) 是一款非对称加密(PGP)的免费软件,非对称加密方式简单讲就是指用公钥加密文件,用私钥解密文件。如果你想给谁发送加密信息,首先你要得到他的公钥,然后通过该公钥加密后传给他,对方利用自已的私钥就可解密并读取文件了。
# 配置文件介绍
GPG 配置文件目录:~/.gnupg
~/.gnupg/gpg.conf – 配置文件
~/.gnupg/trustdb.gpg – 信任库
~/.gnupg/pubring.gpg – 公钥库
~/.gnupg/secring.gpg – 私钥库
# 基本操作
1 生成密钥对
gpg --gen-key
生成过程中会让你选择加密方式,一般选 (1) RSA and RSA (default) 就可以了,然后还需要选择加密位数、过期日期及输入姓名,邮件地址,备注,Passphrase(访问密码)等信息。最后你就可以干点别的事,比如上上 网,玩玩游戏什么的,以便让机器生成一些随机数,回头你就可以看到密钥对已经生成完毕。
2 传播公钥:
导出公钥:生成后你可以把公钥中公钥库中导出来,以便传播给你的朋友。
gpg --export --armor mykeyID > gpgkey.pub.asc #mykeyID 部分可以用 name 或 mail 地址代替
注: - -armor 表示加内容转换成可见的 ASCII 码输出,否则是二进制不可见内容。
现在你可以把导出的公钥通过 Email 等途径发送给你的朋友了,或者你也可以不导出公钥直接上传公钥到密钥服务器。
gpg --keyserver keyserverAddress --send mykeyID
注: --keyserver 可以不加,默认为 keys.gnupg.net
然后只要把公钥 ID 和服务器地址告诉给朋友就可以了,朋友可以通过搜索你的 公钥 ID ,Email 地址或名字来获取并导入你的公钥,如下:
gpg --keyserver keyserverAddress --search-keyskeyid/name/Email
比如搜索我的:
gpg --keyserver keyserver.ubuntu.com --search-keysrikulu
3 导入朋友的公钥
当你获得朋友的公钥文件后,你首先需要导入公钥到公钥库
gpg --import gpgkey.pub.asc
或直接从公钥服务器导入
gpg --keyserver keyserverAddress --recv-keys pubkeyID
# 私钥备份与密钥回收
1 密钥的导出和导入:以便用来备份密钥或导入到其它机器上。
导出
gpg -oa seckey.asc --export-secret-keys mykeyID
导入
gpg --import seckey.asc
2 密钥回收:当您的密钥对生成之后,您应该立即做一个公钥回收证书,如果您忘记了您的私钥的口令或者您的私钥丢失或者被盗窃,您可以发布这个证书来声明以前的公钥不再有效。
生成回收证书
gpg --output revoke.asc --gen-revoke mykeyID
导入回收证书
gpg --import revoke.asc
发送回收证书到服务器,声明原GPG Key 作废
gpg --keyserver keyserverAddress --send mykeyID
# 列出机器中保存的所有密钥
列出所有公钥
gpg -k
列出所有私钥
gpg -K
# 常规使用
1 非对称文件加密与解密:
加密:当你导入完好友的公钥后,就可以用朋友的公钥加密文件了,
gpg -e -r username filename (-r 表示指定用户)
解密:上面的操作会生成 filename.gpg 加密文件,之后你可以把此文件发送给好友了,对方就可以用自已的密钥来解密文件了。
gpg -d filename.gpg
2 对称加密与解密: 有时候没有得到对方的公钥,而且资料不是太重要,此时还可以使用简单的对称加密方式(加密及解密都使用相同的密钥/密码),加密过程中提示输出对称密钥/密码,注意:此密码是临时用的密码,不要设置和自
己的私钥保护密码一样,以防别人猜测及盗用!
加密
gpg --symmetric filename
解密
gpg -d filename.gpg
3 对文件签名
数字签名
gpg -o doc.sig -s doc
其中doc是原文件,doc.sig包含了原文件和签名,是二进制的。这个命令会要求你输入你的私钥的密码句。
gpg -o doc.sig -ser name doc 既签名又加密
文本签名
gpg -o doc.sig --clearsign doc
这样产生的doc.sig同样包含原文件和签名,其中签名是文本的,而原文件不变。
分离式签名
gpg -o doc.sig -ab doc
doc.sig仅包括签名,分离式签名的意思是原文件和签名是分开的。
b 表示分离式签名detach-sign
验证签名
gpg --verify doc.sig [doc]
验证之前必须导入文件作者的公钥,对于分离式签名,最后还要加上原文件,即后面的doc。
-- 完
关于 GPG 更详细的介绍请看以下两篇参考资料:
[1]GnuPG HOWTO (中文版) http://www.gnupg.org/howtos/zh/
[2]GPG(pgp)加解密中文完整教程 http://www.alexgao.com/2009/01/24/gpg/(PDF下载)
PS: 我的 GPG Key
gpg --keyserver keyserver.ubuntu.com --recv-keysE5211133
- GPG 加密解密简明教程
- GPG 加密解密简明教程
- gpg 加密解密问题
- GPG 加密解密
- gpg加密解密
- gpg加解密教程
- 加密解密工具gpg (GnuPG)
- GPG加密解密及文件完整性验证
- 使用GPG对文件进行加密解密批处理
- 如何在Linux下使用GPG(GnuPG)加密及解密
- Linux下使用GPG加密解密的说明及示例
- gpg加密
- JAVASCRIPT加密解密教程
- RSA加密解密教程
- GPG(pgp)加解密中文完整教程
- android加密解密完美教程
- android加密解密完善教程
- gpg 自动解密
- 查看oracle执行计划
- 针对web打印控件的使用心得
- crossover 11.01 破解版
- 三维变换到二维投影_OpenGL版本
- 关于在MFC中使用TinyXML
- GPG 加密解密简明教程
- 关于SendMessage和PostMessage的使用感悟
- 【Android开发:自定义控件系列一】仿android4.0 Spinner下拉效果
- Oracle Package包的定义及使用
- 跟我学写makefile
- 再谈“我是怎么招聘程序员的”
- 数学常数e的含义
- wxWidgets
- 使用powerDesigner设计表及导入oracle数据库中