您的位置:首页 > 其它

GPG加密解密及文件完整性验证

2014-06-25 12:07 253 查看
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

准备知识:

对称加密:

发送方: 010111 XOR 101100 =
111011
(101100为加密密钥)

接收方: 111011 XOR 101100 = 010111

公钥加密:

发送方产生两把密钥:公钥(Public
Key)&私钥(Private Key),也就是密钥对(Key
Pair)

明文->公钥加密->密文->私钥解密->明文

数字签名:

....

-----------------------------发送方的操作-------------------------------------

sh# mkdir ~/.gnupg
//默认是把密钥对存在此目录

sh# gpg --gen-key
//生成公钥pubring.gpg,私钥secring.gpg,邮箱是很重要的

sh# gpg --list-keys
//查看所有密钥,如果生成了多个密钥对的话就有多个了

sh# gpg --list-public-key
//查看所有公钥,注意pub后面的*号字符串,pub
xxxxx

sh# gedit test.txt
//生成一个文本,里面输入点东西,用于以下测试

将演示两种验证方式和一个数字签名

一种是公钥验证,大概是用于验证文件完整性,相当于:sh#md5sum
***;

另一种是私钥验证,控制只让那些知道密码的人能打开看

sh# gpg --clearsign test.txt
//使用私匙对数据进行签名,生成test.txt.asc,打开此文件还是可以看到内容的,只是多了一些东西,把这个发给其他人,这个演示公钥验证

sh# gpg --output test.txt.gpg -r zjstandup@126.com -as --encrypt
test.txt
//导入私钥,数据被加密成了test.txt.gpg,打开此文件看不到原信息的,把这个发给对方,这个演示私钥验证

sh# gpg --output test.sig --sign test.txt
//这个演示数字签名

---------------------------接收方的操作------------------------------------------

sh# gpg --import test.gpg
//导入公钥至本机,test.gpg由发送方邮件传输过来或从公钥服务器下载过来的

1:公钥验证

sh# gpg --verify test.txt.asc
//将有信息表明是完整的签字,假如改变了这个文件里面的信息再执行此命令,将出现不同的结果哦!

2:私钥验证

sh# gpg --decrypt test.txt.gpg > zjstandup.txt
//执行,要输入正确的密码(在发送端生成密钥对时的那个)才能生成txt

3;数字签名

sh# gpg --output sig.txt --decrypt test.sig
//将显示完整的签字并还原内容生成sig.txt

sh# gpg --help >> manule.txt

sh# gedit manule.txt

//将看到以下说明

gpg (GnuPG) 1.4.1

Copyright (C) 2005 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.

Home: ~/.gnupg

支持的算法:

公钥:RSA, RSA-E, RSA-S, ELG-E, DSA

对称加密:3DES, CAST5, BLOWFISH, AES, AES192, AES256,
TWOFISH

散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512

压缩:不压缩, ZIP, ZLIB, BZIP2

语法:gpg [选项] [文件名]

签字、检查、加密或解密

默认的操作依输入数据而定

指令:

-s, --sign
[文件名]
生成一份签字

--clearsign
[文件名]
生成一份明文签字

-b,
--detach-sign
生成一份分离的签字

-e,
--encrypt
加密数据

-c,
--symmetric
仅使用对称加密

-d,
--decrypt
解密数据(默认)

--verify
验证签字

--list-keys
列出密钥

--list-sigs
列出密钥和签字

--check-sigs
列出并检查密钥签字

--fingerprint
列出密钥和指纹

-K,
--list-secret-keys
列出私钥

--gen-key
生成一副新的密钥对

--delete-keys
从公钥钥匙环里删除密钥

--delete-secret-keys
从私钥钥匙环里删除密钥

--sign-key
为某把密钥添加签字

--lsign-key
为某把密钥添加本地签字

--edit-key
编辑某把密钥或为其添加签字

--gen-revoke
生成一份吊销证书

--export
导出密钥

--send-keys
把密钥导出到某个公钥服务器上

--recv-keys
从公钥服务器上导入密钥

--search-keys
在公钥服务器上搜寻密钥

--refresh-keys
从公钥服务器更新所有的本地密钥

--import
导入/合并密钥

--card-status
打印卡状态

--card-edit
更改卡上的数据

--change-pin
更改卡的 PIN

--update-trustdb
更新信任度数据库

--print-md 算法
[文件]
使用指定的散列算法打印报文散列值

选项:

-a,
--armor
输出经 ASCII 封装

-r, --recipient
某甲
为收件者“某甲”加密

-u,
--local-user
使用这个用户标识来签字或解密

-z
N
设定压缩等级为 N (0 表示不压缩)

--textmode
使用标准的文本模式

-o,
--output
指定输出文件

-v,
--verbose
详细模式

-n,
--dry-run
不做任何改变

-i,
--interactive
覆盖前先询问

--openpgp
行为严格遵循 OpenPGP 定义

--pgp2
生成与 PGP 2.x 兼容的报文

(请参考在线说明以获得所有命令和选项的完整清单)

范例:

-se -r Bob
[文件名]
为 Bob 这个收件人签字及加密

--clearsign
[文件名]
做出明文签字

--detach-sign
[文件名]
做出分离式签字

--list-keys
[某甲]
显示密钥

--fingerprint
[某甲]
显示指纹

#安全技术
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: