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
[某甲]
显示指纹
#安全技术
准备知识:
对称加密:
发送方: 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
[某甲]
显示指纹
#安全技术
相关文章推荐
- Linux如何使用GPG(GNU Privacy Guard)对信息/文件进行加密和解密
- 在WindowsServer2003-SP2-x86-CHS补丁 安装补丁时不能验证update.inf文件的完整性,请确定加密服务正在此计算机上运行
- 安装程序不能验证Update.inf文件的完整性,请确定加密服务正在此计算机上运行
- GPG实现文件的加密解密传输
- hadoop学习笔记之一:文件完整性验证gpg --verify
- Windows补丁:安装程序不能验证Update.inf文件的完整性,请确定加密服务正在此计算机上运行
- 使用 GPG 加密和解密文件
- C#调用GPG命令进行加密解密文件操作
- 安装程序不能验证Update.inf文件的完整性,请确定加密服务正在此计算机上执行
- 加密-数字信封-完整性验证-数字签名-数据加解密及身份认证流程
- 加密-数字信封-完整性验证-数字签名-数据加解密及身份认证流程
- 使用GPG对文件进行加密解密批处理
- 自己写了一个文件加密解密工具
- ASP.NET2.0中配置文件的加密与解密(转载)
- 对文件进行EFS加密和解密
- WINDOWS XP SP2 NTFS EFS加密文件的解密案例
- 如何使用 Visual C# 加密和解密文件
- PB数据库连接描述文件的密码加密和解密原理
- 读取文件,解密,加密,写入文件,存储过程的应用