Gpg4win 是一款基于 GPG 的非对称加密软件。非对称加密方式,简单理解就是用公钥加密文件,用私钥解密文件。如果你需要发送加密信息,首先获取接收者的公钥,然后利用该公钥加密后传递,对方利用对应的私钥就可解密。也就是说,公钥是锁,私钥是钥匙。非对称加密方式很好地解决了传递机密信息的问题。

GPG,又称为 GnuPG,全称是 Gnu Private Guard,即 GNU 隐私卫士。GPG 是以 PGP 算法为核心的强大的加密软件。但 GPG 项目是一套命令行程序,而且是为 Linux 等开源操作系统设计的。好在开发者为 GPG 开发了许多图形前端并将其迁移到 Windows 平台,Gpg4win 就是 Windows 平台 GPG 及图形前端的集合安装包,本文将介绍 Gpg4win 中图形前端的使用方法,不会涉及 GPG 的命令行使用方法。

  1. 下载安装 Gpg4win

下载地址:gpg4win(gpg加密软件) v2.3.0 官方中文安装版 下载-脚本之家 http://www.jb51.net/softs/447623.html

首先到官方网站下载 Gpg4win,进入下载页面之后点击下载按钮即可下载。

在开始安装 Gpg4win 之前,我们先来了解一下 Gpg4win 是由哪些组件组成的。Gpg4win 的核心是 GPG,并包括 Kleopatra、GPA、GpgOL、GpgEX和Claws Mail 五个相关工具,其中 Kleopatra 和 GPA 是 GPG 的密钥管理器,用于生成、导入和导出 GPG 密钥(包括公钥和私钥),GpgOL 是 Outlook 2003 和 2007 的 GPG 支持插件,GpgEX 是资源管理器的 GPG 支持插件(不支持 Windows 64 位),Claws Mail 则是一个内置 GPG 支持的邮件客户端。本文将介绍 Kleopatra 和 GpgEX 的使用方法。

运行 Gpg4win 安装程序,选择安装组件时建议修改默认设置,默认 Gpg4win 将安装 GnuPG 核心、Kleopatra、GpgOL、GpgEX 以及支持文档(英文和德文)。我推荐只选择 Kleopatra 和 GpgEX。

其余的安装过程保持默认设置即可。安装完成之后安装程序会要求设置信任的根证书,勾选下方的“Root certificate defined or skip configuration”(根证书已定义或跳过设置),该设置只对 S/MIME 加密造成影响,而通常我们使用的是 OpenPGP 标准,即 PGP 算法。最后结束整个安装过程即可。

2. 创建密钥对

GPG 作为非对称加密软件,进行加密解密之前必须生成密钥对,也就是生成对应公钥和私钥。请按以下步骤使用 Kleopatra 生成密钥对:

  1. 运行Kleopatra,点击File(文件)菜单中的New Certificate(创建新证书)一项,运行Certificate Creation Wizard(证书创建向导)。
  2. 进入证书类型页面,有两个选项可供选择:第一项是 OpenPGP 密钥对,第二项是 X.509 密钥对及证书。此处我们选择第一项。

3.进入详细信息页面,需要填入密钥对的详细信息,包括Name(姓名)、Email(电子邮箱地址)和Comment(附加信息)三项。点击Advanced Settings(高级设置)按钮,可以对密钥算法和强度以及密钥用途进行设置,为了增强安全性可以在上方的密钥强度中选择最高的3072 bits(3072位),下方的密钥用途设置主要有三个设置:Signing(签名)、Encryption(加密)和Authentication(认证),维持默认设置即可,最后的Valid until选项可以设置密钥到期时间。设置完成点击下一步。

4.最后确认密钥对的相关设置。点击Create Key(创建密钥)按钮,程序将要求输入 Passphrase(密码短语),Passphrase 是使用私钥之前需要输入的密码短语,不过与普通密码相比,Passphrase 长度更长,而且可以包含空格。输入 Passphrase 之后还可以在下图所示的文本框中输入帮助计算机创建更为安全的密钥,输入内容无关紧要,计算机只是利用击键的间歇时间生成随机数,或者也可以移动这一窗口来帮助计算机生成随机数。

5.最后 Kleopatra 将提示创建密钥对完成,下方三个选项是备份密钥对、通过 Email 发送公钥和将公钥上传到服务器,如果不需要执行上述操作点击 Finish(完成)即可。

3. 导入导出公钥

生成密钥对之后,我们必须导出公钥,请按以下步骤导出公钥:

  1. 在 Kleopatra 主界面中右键点击要导出公钥的密钥对,在右键菜单中选择 Export Certificates(导出证书)。
  2. 指定公钥的保存路径和文件名称。

除此之外,菜单中其他两项导出选项含义如下:

  • Export Secret Keys(导出私钥):用以导出密钥对。
  • Export Certificates to Server(导出证书到服务器):用以将公钥导出到服务器上。其他用户可以在存放公钥的公有服务器上搜索公钥并导入,默认的公钥服务器是 keys.gnupg.net。

导入公钥可以通过 File(文件)菜单中的 Import Certificates(导入证书)选项进行,也可以直接利用拖拽操作将公钥文件拖到 Kleopatra 的密钥列表,然后在弹出的菜单中选择 Import Certificates(导入证书)即可。

对于导出到服务器的公钥,选择 File(文件)菜单中的Lookup Certificates on Server(在服务器上搜索公钥)选项,输入 Email 地址点击 Search(搜索)按钮就可以找到对应的公钥,点击 Import(导入)按钮就可以导入公钥。

4. 加密解密文件

导入公钥之后,我们就可以加密文件了。启动加密操作向导有三种途径,一种是在 Kleopatra 主界面中选择 File(文件)菜单中选择 Sign/Encrypt Files(签名/加密文件),一种是将要加密的文件或文件夹拖拽到 Kleopatra 主界面中,然后在弹出的右键菜单中选择 Sign/Encrypt(签名/加密),一种则是在想要加密的文件或文件夹的右键菜单中选择 Sign and encrypt(签名与加密)。这三种途径没有本质区别,除了第一种途径无法选择文件夹因此只能加密文件。下面对加密向导进行介绍:

  1. 首先是选择操作类型,分别是签名并加密、加密和签名,默认选择的是中间一项加密,最下方的复选框 Remove unencrypted original file when done 是指加密完毕删除源文件,为了保证安全建议选上该项。设置完毕点击Next。
  2. 现在向导会列出计算机上的所有公钥,请选择正确的公钥并点击中间的 Add(添加)将其添加到下方的列表中,如下图所示:
  3. 选择完毕点击 Encrypt(加密)按钮开始加密,假如你选择的是他人的公钥,那么 Kleopratra 会弹出对话框提示你加密之后你将不能够解密,点击 Continue 确认,保密完成之后点击 Finish 确认即可。
  4. 加密完成之后会在源文件所在文件夹生成 .gpg 为扩展名的加密文件,现在你可以把这个文件发给公钥所有者。

接收到已经加密的文件之后应该怎么解密呢?方法和加密非常类似,也是通过向导完成的。启动解密向导的途径同样有三种,一是在 Kleopatra 主界面中选择 File(文件)菜单中选择 Decrypt/Verify Files(解密/验证文件),一是将要解密的文件或文件夹拖拽到 Kleopatra 主界面中,然后在弹出的右键菜单中选择 Decrypt/Verify(解密/验证),一种则是在想要解密的文件或文件夹的右键菜单中选择 Decrypt and verify(解密和验证)。

以上述任意一种方式启动加密向导,点击解密向导对话框的 Decrypt/Verify(解密/验证)按钮,假如弹出对话框,请输入你的私钥的 Passphrase,输入之后点击 OK 就可以使用你的私钥进行解密了,注意在本用户对话期间你再次使用私钥是不需要输入Passphrase的,也就是说,使用私钥之后最好注销一下以保证安全。

GnuPG 和其他加密工具相比,其非对称性加密的特点使其更适合于机密信息的传递。除了加密解密之外,GPG 还可以对文件进行签名和验证,功能非常强大。而且由于 GPG 图形化前端功能的日益完善,GPG 的使用已经不再困难,Gpg4win 已经可以成为大众的加密工具。

在PHP中使用加密技术的更多相关文章

  1. WANNACRY病毒中的加密技术分析

    WANNACRY病毒中的加密技术分析 2019/11/6 16:56:46 分析WANNACRY病毒中的加解密技术的应用.分析内容包括但不限于:对称密码技术和公钥密码技术的作用:受害者支付赎金后就会恢 ...

  2. php中3DES加密技术

    因为工作中要用到加密,接口中要求也是用密文传输数据,用到3des加密,就研究了一下. 在网上也找了好多,但是都不可以用,没法正式运行,终于找到一个可以运行的,自己又修改了一下,记录下来,以后还可能会用 ...

  3. 非对称加密技术中,iFace [ 爱妃链 ]人脸密钥技术排名第三,将弥补区块链现有不足

    最近,区块链领域,出现了一个比较热门技术的讨论,人脸密钥技术,可能大家还对这个名词感到很陌生,但是熟悉加密技术的技术大牛可能一听就能够明白大体的意思了,但是也正是这一熟悉而陌生的技术名词,掀起了区块链 ...

  4. 浅谈 PHP 中的多种加密技术及代码示例

    信息加密技术的分类 单项散列加密技术(不可逆的加密) 属于摘要算法,不是一种加密算法,作用是把任意长的输入字符串变化成固定长的输出串的一种函数 MD5 string md5 ( string $str ...

  5. AES和RSA混合加密技术在网络数据传输中的应用

    原文:http://www.fx361.com/page/2017/0110/519967.shtml          摘要:文章通过分析和比较AES加密算法和RsA加密算法的实现过程和各自的特点, ...

  6. Android逆向之旅---基于对so中的函数加密技术实现so加固

    一.前言 今天我们继续来介绍so加固方式,在前面一篇文章中我们介绍了对so中指定的段(section)进行加密来实现对so加固 http://blog.csdn.net/jiangwei0910410 ...

  7. PHP加密技术

    一.MD5加密 直接干,这里以一个登录页面为例: <?php require_once 'config/database.config.php'; $act=$_REQUEST['act']; ...

  8. [转]细说SQL Server中的加密

    简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程.在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在 ...

  9. 字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略

    因为手头需要使用一个第三方类库,网络上又找不到它的可用的版本,于是只好自己动手.这个类库使用了Dotfuscator 加密,用.NET Reflector加载程序集, 看到的字符串是乱码,如下面的代码 ...

随机推荐

  1. 题目1003:A+B(字符串转数字)

    问题来源 http://ac.jobdu.com/problem.php?pid=1003 问题描述 每次给你两个数,数的形式是每三位有一个间隔符',',计算两数之和. 问题分析 两个问题,一.如何读 ...

  2. IP地址转换为Int

    1.转换类 import com.google.common.base.Strings; import java.security.InvalidParameterException; import ...

  3. JDK下载安装以及环境变量的配置

    JDK是Java Development Kit 的缩写,是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序. 一.JDK的下载 这里以Oracle官网下载为例 1. ...

  4. activity启动模式launchMode区别和优化

    初学android的开发人员,可能会经常忽略这个重要的设置. Activity一共有以下四种launchMode:1.standard2.singleTop3.singleTask4.singleIn ...

  5. android常用Linux命令

    安卓下面有个软件叫终端模拟器,其实就是Linux下的命令行,使用这些命令能有效处理问题. 1.基本知识 “/”,这个英文字母斜杠指的是根目录,类似Windows的C:\,但是Linux下只有一个根目录 ...

  6. javac的词法分析

      1.词法分析将Java源文件的字符流转变为对应的Token流.   JavacParser类规定了哪些词是符合Java语言规范规定的词,而具体读取和归类不同词法的操作由Scanner类来完成.   ...

  7. maven的安装配置超详细教程【含nexus】

    1 下载 下载地址:http://maven.apache.org/download.cgi 界面效果如下: 点击之后进入的apache 软件基金的发布目录,在这里你可以下载apache的所有项目. ...

  8. springboot+zuul(二)------智能负载

    一.参考 参考资料:https://www.cnblogs.com/flying607/p/8330551.html ribbon+spring retry重试策略源码分析:https://blog. ...

  9. memcached 学习笔记 3

    适合什么场合 memcached不是万能的,它也不是适用在所有场合. Memcached是“分布式”的内存对象缓存系统,那么就是说,那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的 ...

  10. Windump 的用法/Windump 是什么?

    Windump   Windump是Windows环境下一款经典的网络协议分析软件,其Unix版本名称为Tcpdump.它可以捕捉网络上两台电脑之间所有的数据包,供网络管理员/入侵分析员做进一步流量分 ...