准备知识:
对称加密:
发送方: 010111 XOR 101100 = 111011
接收方: 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 [文件名]
-b, --detach-sign
-e, --encrypt
-c, --symmetric
-d, --decrypt
-K, --list-secret-keys
选项:
-a, --armor
-r, --recipient 某甲
-u, --local-user
-z N
-o, --output
-v, --verbose
-n, --dry-run
-i, --interactive
(请参考在线说明以获得所有命令和选项的完整清单)
范例:
-se -r Bob [文件名]
--clearsign [文件名]
--detach-sign [文件名]
--list-keys [某甲]
--fingerprint [某甲]
GPG加密解密及文件完整性验证
最新推荐文章于 2024-06-21 09:08:30 发布