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 ...
随机推荐
- grails2.3.11第一课
以指令的方式Getting Started 1. 创建一个项目 grails create-app HelloGrails 2. 因为我环境变量中配置的jdk是1.8的,所以我要把这个项目搞到IDEA ...
- HW7.7
public class Solution { public static void main(String[] args) { double[][] points = { {-1, 0, 3}, { ...
- BNUOJ-26482 Juice 树形DP
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26482 题意:给一颗树,根节点为送电站,可以无穷送电,其它节点为house,电量达到pi时 ...
- Java文件分割
package FileDemo; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...
- Java之Property-统获取一个应用程序运行的次数
package FileDemo; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...
- A Tour of Go Interfaces
An interface type is defined by a set of methods. A value of interface type can hold any value that ...
- [iOS基础控件 - 6.4] 汽车品牌展示 Model嵌套/KVC/TableView索引
A.需求 1.使用汽车品牌名称头字母为一个Model,汽车品牌为一个Model,头字母Model嵌套品牌Model 2.使用KVC进行Model封装赋值 3.展示头字母标题 4.展示索引(使用KVC代 ...
- js基础知识总结(全)
1.js版HelloWorld <script type="text/javascript"> alert("HelloWorld"); </ ...
- 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数
package homework002; import java.util.ArrayList; import java.util.List; import java.util.Random; p ...
- Codeforces Round #268 (Div. 1) A. 24 Game 构造
A. 24 Game Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/468/problem/A D ...