使用gnupg为文件传送文件加密
创始人
2024-09-11 19:51:43
0

 

Windows系统请安装Gpg4win,mac os 安装GPGTools,安装好后创建一个新的公私钥匙对(key pair)

gpg --gen-key

按提示一步步做到***,注意*千万*不要忘记或泄漏我们的私匙(passphrase)!

我们假定***的用户信息为:You selected this USER-ID:"sb(sbsb.) ",创建一个撤销证书(revocation certification)并做好备份。

$ gpg --output sb_gpg_revoke.asc --armor --gen-revoke sb@sb.com

将这份证书(sb_gpg_revoke.asc)保存/备份到安全的位置。

注意在任何时刻我们都可以使用$ gpg --list-key查看当前可用的key,导出公匙:$ gpg --output sb_gpg_asc.gpg --armor --export sb@sb.com。

注意这个公匙文件(somebody_gpg_asc.gpg)是需要和别人交换发给别人使用的。我们也可以将此证书发送到某些知名的服务器。

现在我们假定需要将文件testfile.txt发送到用户 anotherone@elsewhere.com

这里简单的介绍一下PGP的建立过程。

a) 用户A获取用户B的公匙文件,并导入改公匙

b) 用户A签名用户B的公匙文件。

c) 用户A通过用户B的公匙加密文件F,并将加密过后的文件F.asc发送给用户B

d) 用户c获取到文件F.asc,并通过自己的私匙解密文件F.asc并还原为文件F

公匙虽然是公开的,但目前理论上绝对是安全的。其基本原理为任意一个合数都可以分解为多个质数的乘积。比如

8 = 2*2*2

14 = 2*7

但一个数很小的时候我们能很快发现这些互质的数(eg: 39 = 13 * 3),但当这个数很大的时候却很难找到这些互质的数了,如:

995757614766768701903 = 13757413 * 72379713741731

已经基本不可能退出这两个互质的数(不一定是真正的质数,这里仅为做一个简单的演示)了。实际我们采用的数字通常为1024-bit

这样产生的结果即使在目前最快的计算机上计算,至少也需要几千年的时间才可能得出最终的结果。

导入sb@sb.com的公匙。

$ gpg --import anotherone_gpg_asc.gpg

可以通过

$ gpg --list-key

验证是否导入成功

签名该公匙文件

$ gpg --edit-key sb@sb.com

$ # fpr

$ sign

# 按要求输入相关签名信息。

$ # check

$ write

通过用户sb@sb.com的公匙加密需要传送的文件testfile.txt

$ gpg --armor --encrypt testfile.txt

得到文件testfile.txt.asc,将此文件发送到需要接收方。

用户收到文件testfile.txt.asc后,利用自己的私匙解密该文件

$ gpg --decrypt testfile.txt.asc

得到文件testfile.txt

注:测试通过的情况多出了两步,即用户anotherone@elsewhere.com也导入了sb@sb.com的公匙并做了数字签名。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...