linux gpg 使用笔记
http://linux.chinaunix.net/techdoc/system/2009/04/30/1109541.shtml
一、GnuPG的简介
我们在网上的发送的邮件是明文的,可以被截获、被我们的服务商获得、甚至可以被搜索出来。这是很恐怖的事情,如果是一般嘘寒问暖的信也就罢了,若是私秘信件就危险了。所以呢,加密也就很有必要了!!
我这里所要说的PGP是比较成熟的加密算法(但还没有成为标准),由于PGP算法太安全(破解它需要3亿年),属于美国政府严禁传入中国的计算机产品。我
们现在能够得以使用GnuPG(它是PGP的开源产品),是要感谢GNU和自由软件运动,这也是我们推崇开源运动的原因!!
二、准备工作
我的学习环境:
OS:CentOS5 linux
软件:gpg (GnuPG) 1.4.5(一般linux系统都会自带)
支持的算法:
公钥:RSA, RSA-E, RSA-S, ELG-E, DSA
对称加密:3DES, CAST5, BLOWFISH, AES, AES192,
AES256, TWOFISH
散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512,
SHA224
压缩:不压缩, ZIP, ZLIB, BZIP2
关于PGP的win下的应用可以查看http://www.pgp.org.cn/index.php
就是PGP中国,那里有有详尽的学习资料。
三、操作流程(蓝色字标识是我的注释)
1、生成KEY
代码如下:
$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、2、5,选1即可,回车)
DSA 密钥对会有 1024 位。
ELG-E 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048)(直接输入4096即可)
......
请设定这把密钥的有效期限。
0 = 密钥永不过期
= 密钥在 n 天后过期
w = 密钥在 n 周后过期
m = 密钥在 n 月后过期
y = 密钥在 n 年后过期
密钥的有效期限是?(0) (输入密钥的有效期,一般0即可)
......
以上正确吗?(y/n) (回答y即可)
您需要一个用户标识来辨识您的密钥;本软件会用真实姓名、注释和电子邮件地址组合
成用户标识,如下所示:
“Heinrich Heine (Der Dichter) ”
真实姓名: (输入你的姓名,如张三,允许汉字)
电子邮件地址: (输入你的邮箱地址,如abc@gmail.com)
注释: (输入你的备注,比如你这个邮箱的用途之类的,可以不填写)
......
更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?(输入O)
您需要一个密码来保护您的私钥。
请输入密码: (输入一个密码,当你使用你的私钥解密、签名的时候使用)
再输入一次: (呵呵,不用说了吧)
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
+++++.++++++++++.++++++++++++++++++++++++++++++++++++++++
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
++++++++++++++++++++.+++++.+++++++++++++++...++++++++++++
(在这个过程中随机敲一些字母数字,或者干脆不要管它了,去作其他的事)
++++++++++++++++++++.+++++.+++++++++++++++...++++++++++++
gpg: 密钥 xxxxxxxx 被标记为绝对信任
公钥和私钥已经生成并经签名。
gpg: 正在检查信任度数据库
gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性: 3 已签名: 0 信任度:0-,0q,0n,0m,0f,3u
pub xxxxx/xxxxxxxx 2007-05-20
密钥指纹 = xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
uid 张三 (张三的私人邮箱)
sub xxxxx/xxxxxxxx 2007-05-20
注:生成的key会保存在home/.gnupg/目录下,如:公钥文件pubring.gpg,私钥文件secring.gpg
2、发布公钥
代码:
$ gpg --export -a -o filenamepub.asc (导出你的公钥)
$ gpg --export-secret-keys -a -o filenamesec.asc (导出你的私钥,留作备份)
$ gpg --list-key(列出你的公钥,记下你的KEY,就是下面红色标识部分)
pub xxxxx/xxxxxxxx 2007-05-20
uid 张三 (张三的私人邮箱)
sub xxxxx/xxxxxxxx 2007-05-20
$ vi ~/.gnupg/gpg.conf
......
keyserver wwwkeys.nl.pgp.net(添加该行)
......
$ gpg --keyserver wwwkeys.nl.pgp.net --send-keys KEYID
gpg: 将密钥‘xxxxxxxx’上传到 hkp 服务器 wwwkeys.nl.pgp.net
(上传公钥到公钥服务器上)
$ gpg --search-keys zhangsan@gmail.com (搜索公钥)
gpg: 搜索“zhangsan@gmail.com”,在 hkp 服务器 wwwkeys.nl.pgp.net 上
(1) 张三 (张三的私人邮箱)
1024 bit DSA key xxxxxxxx, 创建于:2007-05-20
Keys 1-1 of 1 for "zhangsan@gmail.com". 输入数字以选择,输入 N 翻页,输入 Q 退出 >1(输入1就是下载搜到的公钥)
gpg: 下载密钥‘xxxxxxxx’,从 hkp 服务器 wwwkeys.nl.pgp.net
gpg: 密钥 xxxxxxxx:“张三 (张三的私人邮箱)”未改变
gpg: 合计被处理的数量:1
gpg: 未改变:1
$ gpg --import filenamepubkey.asc (导入对方李四的公钥)
3、加密和解密
呵呵忙了大半天,终于可以实战应用了!^_^!
eg:你要发给同事李四一个文件fileA.txt, 用如下命令加密:
$ gpg -r "KEYID/UID" -e fileA.txt
(KEYID就是上文提到的红色标识项,当然是李四的KEYID,UID是“李四 (李四的私人邮箱) ”,会生成一个加密文件fileA.txt.gpg)
李四收到密件后,因为他有对应的密钥,解密命令如下:
$ gpg -o fileA.txt -d fileA.txt.gpg
4、签名
上面的例子中,李四得到了fileA.txt.gpg,但是没有任何信息来证明他来自三,为表明发件人的身份,需要签名。
$ gpg -s -r "李四KEYID" -e blog (-s表示签名)
当李四解密这个密件的时候,会看到你的签名。如:
$ gpg -o fileA.txt -d fileA.txt.gpg
gpg: 完好的签名,来自于“张三 (张三的私人邮箱)”
明文也可以签名!!如:
$ gpg -b -a fileB.txt
会生成一个签名文件fileB.txt.asc,然后你可以将fileB.txt和fileB.txt.asc一起寄出。
收件人使用如下命令来判断签名,如:
$ gpg --verify fileB.txt.asc
linux gpg 使用笔记的更多相关文章
- Linux实战教学笔记08:Linux 文件的属性(上半部分)
第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...
- Linux实战教学笔记07:Linux系统目录结构介绍
第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...
- Linux实战教学笔记06:Linux系统基础优化
第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...
- Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)
第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...
- Linux实战教学笔记04:Linux命令基础
第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...
- Linux实战教学笔记03:操作系统发展历程及系统版本选择
标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...
- Linux实战教学笔记02:计算机系统硬件核心知识
标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 互联网企业常见服务器介绍 1.1 互联网公司服务器品牌 - DELL(大多数公司,常用) - HP - IBM(百度在用) 浪潮 联想 航天联 ...
- Linux实战教学笔记01:计算机硬件组成与基本原理
标签(空格分隔): Linux实战教学笔记 第1章 如何学习Linux 要想学好任何一门学问,不仅要眼睛看,耳朵听,还要动手记,勤思考,多交流甚至尝试着去教会别人. 第2章 服务器 2.1 运维的基本 ...
- storysnail的Linux串口编程笔记
storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...
随机推荐
- HIbernate学习笔记(六) 关系映射之多对多
六.多对多 - 单向 Ø 一般的设计中,多对多关联映射,需要一个中间表 Ø Hibernate会自动生成中间表 Ø Hibernate使用many-to-ma ...
- HDFS体系结构:(Distributed File System)
分布式系统的大概图 服务器越来越多,客户端对服务器的管理就会越来越复杂,客户端如果是我们用户,就要去记住大量的ip. 对用户而言访问透明的就是分布式文件系统. 分布式文件系统最大的特点:数据存储在多台 ...
- leetcode@ [318] Maximum Product of Word Lengths (Bit Manipulations)
https://leetcode.com/problems/maximum-product-of-word-lengths/ Given a string array words, find the ...
- Codeforces Round #225 (Div. 2)
比赛时候只做出AB,E题一眼看过去似乎线段树能搞,但是写完过不了样例,才发现看错题了,然后比赛就没啥时间了~~整体状况还是很糟糕,A,B题实在出得太慢,然后持续到现在还没出过C题...不能更弱%> ...
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
结论:1.不管有木有出现异常,finally块中代码都会执行:2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的(此时并没 ...
- Windows常用命令使用总结
Windows dos常用命令的熟练使用有助于提高工作效率. 1.windows+R:打开运行程序窗口 2.cmd:调用DOS命令窗口 3.mstsc:调用远程桌面命令窗口 4.mspaint:调用画 ...
- 【Stage3D学习笔记续】山寨Starling(十一):Touch事件体系
我们的山寨Starling版本将会在这里停止更新了,主要还是由于时间比较有限,而且我们的山寨版本也很好的完成了他的任务“了解Starling的核心渲染”,接下来的Starling解析我们将会直接阅读S ...
- Sass 默认样式库
Sass 默认初始化样式库 @charset "utf-8"; // 变量存储 // 字体Unicode编码 微软雅黑:\5FAE\8F6F\96C5\9ED1 , 宋体:\5B8 ...
- Javascript Basic Operation Extraction
1. logic operation : '&&' and '||' .For this two logic operations,its' results are inconcl ...
- 【转载】总结一下Android中主题(Theme)的正确玩法
http://www.cnblogs.com/zhouyou96/p/5323138.html 总结一下Android中主题(Theme)的正确玩法 在AndroidManifest.xml文件中有& ...