在Windows系统使用Gpg4win进行加密解密

GPG,又称为GnuPG,全称是Gnu Private Guard,即GNU隐私卫士。GPG是以PGP算法为核心的强大的加密软件。但GPG项目是一套命令行程序,而且是为 Linux 等开源操作系统设计的。那么在Windows平台下如何使用GPG呢?不用担心,Gpg4win就是Windows平台GPG及图形前端的集合安装包。

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

下载安装Gpg4win

请到官方网站下载:http://www.gpg4win.org/

之后运行安装程序,保持默认设置即可。安装完成后会要求设置信任的根证书,勾选下方的Root certificate defined or skip configuration(根证书已定义或跳过设置)即可。

创建密钥对

  1. 运行Kleopatra,点击File – New Certificate,会弹出Certificate Creation Wizard(证书创建向导)
  2. 选择第一项 Create a personal OpenPGP key pair。
  3. 填入Name(姓名)、Email(电子邮箱地址)和Comment(附加信息)。
  4. 点击Advanced Settings,可以进行高级设置,为了增强安全性,建议选择最长的4096 bits,其余维持默认设置即可。
  5. 点击Create Key,之后输入Passphrase,点击OK。请牢记Passphrase,因为在使用自己的私钥时需要输入Passphrase。
  6. 在创建的过程中,可以在下图所示的文本框中随意打字或者移动这一窗口,计算机将利用IO生成随机数。

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

导入导出秘钥

公钥加密,私钥解密。如果想要别人给你发送加密信息,别人就要知道你的公钥才行。公钥之所以称为公钥,就是因为它是公开的。接下来,我们需要把自己的公钥公之于众,上传到专门的服务器上。这里以上传到MIT的PGP公钥服务器为例。

  1. 在Kleopatra主界面右键点击要导出的秘钥,点击Export Certificates,输入保存路径和文件名,点击保存后会得到一个asc文件。

  2. 使用文本编辑器打开刚才生成的asc文件,复制全部内容。
  3. 使用浏览器访问MIT的PGP公钥服务器http://pgp.mit.edu/,将刚才复制的内容黏贴到“Submit
    a key”下方的文本框里,点击Submit this key to the key server!。上传成功后,别人搜索你的邮箱即可获取你的公钥。

反过来,如果你想给别人发送加密信息,就需要获取他的公钥。假如我想发送给[email protected],则需要通过以下步骤获取相应的公钥。

  1. 使用浏览器访问MIT的PGP公钥服务器http://pgp.mit.edu/,在“Extract
    a key”下方的文本框输入[email protected],如下图所示。之后点击Do the search!。

  2. 在搜索结果页中点击相应的keyID,会进入一个有一长串乱码的页面。复制该页面的全部内容。
  3. 打开文本编辑器,黏贴刚才复制的内容,保存。文件名随意,例如“neo.asc”。
  4. 在Kleopatra主界面点击Import Certificates,选择刚才保存的文件,点击打开。这样就成功导入了一个公钥。

加密文本

下面的例子将演示如何加密一段文本并通过邮件发送给别人。

  1. 打开文本编辑器,输入你想要加密的文本(即原文),保存。文件名随意,例如“send.txt”。
  2. 在Kleopatra主界面点击 File – Sign/Encrypt Files,选择刚才保存的文件。
  3. 之后弹出的窗口中间有3的选项,分别是签名并加密(Sign and Encrypt (OpenPGP only))、加密(Encrypt)、签名(Sign)。这里我们选择默认选项——加密(Encrypt)。
  4. 因为我们要通过邮件发送纯文本,勾选Text output(ASCII armor)。点击Next。

  5. 之后从上方的列表中选择接受方的公钥(前提是你已经导入了接收方的公钥),点击Add添加到下方列表。点击Ecrypt开始生成密文。
  6. 密文生成后,点击Finish。
  7. 在和原文同一路径下找到刚生成的密文“send.txt.asc”。用文本编辑器打开,复制全部内容。
  8. 将刚才复制的密文发送给接收方,就像平时发邮件一样。

解密文本

下面的例子将演示如何解密一封收到的密文。

  1. 复制收到的密文。打开文本编辑器,粘贴,保存。文件名随意,例如“receive.txt”。
  2. 在Kleopatra主界面点击 File – Decrypt/Verify Files,选择刚才保存的文件。
  3. 选择输出的路径,默认是和密文同一路径,点击Decrypt/Verify。
  4. 之后会要求你输入passphrase,就是我们在创建密钥时输入的那个。点击确定。
  5. 解密完成后,点击OK。
  6. 在输出路径找到解密后的文件“receive.txt.out”,用文本编辑器打开即可看到原文。

注:原文见我的博客《在Windows系统使用Gpg4win进行加密解密

时间: 06-12

在Windows系统使用Gpg4win进行加密解密的相关文章

Windows系统EFS加密/解密原理介绍

EFS加密是windows系统自带的加密方式,一个系统用户对文件加密后,只有以该用户的身份登陆才能读取该文件.EFS加密的文件和文件夹名字颜色是绿色,或者在该文件或文件夹的高级属性是加密属性.这样做在很大程度尚提高了数据的安全性,但是如果秘钥文件丢失或者重装系统就会导致加过密的文件不能打开,今天的教程主要介绍的就是如果电脑使用ESF加密后却因为其他原因导致无法打开文件,我们应该怎么解密. EFS加密原理介绍 要想解密,我们首先要了解是怎么加的密,下面介绍EFS加密原理. 当我们使用EFS对一个N

MAC系统用RSA 对数据进行加密解密

创建密钥对 在终端中一次输入下面的脚本 openssl genrsa -out private_key.pem 1024 openssl req -new -key private_key.pem -out rsaCertReq.csr openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt openssl x509 -outform der -in rsaCert.crt

使用php mcrypt加密解密

数字签名:对数据和私钥进行hash运算得到消息摘要,连同消息本身一块发给客户端.数据签名强调客户端接收到的数据是来自特定服务端,服务端具有对数据不可否认性.客户端通过确认此次签名的正确性来判断拿到的消息是否来自特定服务端. 数据加密:对数据进行加密,有对称加密和非对称加密两种.PHP中常使用 mcrypt和openssl扩展对数据进行加解密.mcrypt常用在对称加密中,openssl常用在非对称加密中.另外在编程中还经常使用到一种单项散列加密算法,比如MD5,HASH,SHA1,passwor

加密解密基础及私有CA的实现-2015092801

1. 加密解密简述 2.加密算法 3.加密解密步骤 4.使用openssl自建私有CA 加密解密基础: 由于互联网的数据传输基本上都是明文的(如ftp.http.telnet等),而往往有些数据在互联网传输对于传输方来讲,确实涉及隐私或是一些敏感的内容不想让互联网上其他人看到,因此,引入了加密的机制. 最早起的加密,采用移位的方式对数据进行加密,如数据数"abcd",其对应的在互联网上传输的内容是"efgh".后来的加密方式是采用"密码对照本",

mysql 加密解密函数

http://blog.csdn.net/wh62592855/article/details/6777753 mysql下的加密函数有如下几个 PASSWORD():创建一个经过加密的密码字符串,适合于插入到MySQL的安全系 统.该加密过程不可逆,和unix密码加密过程使用不同的算法.主要用于MySQL的认证系统. ENCRYPT(,):使用UNIX crypt()系统加密字符串,ENCRYPT()函数接收要加密的字符串和(可选的)用于加密过程的salt(一个可以唯一确定口令的字符串,就像钥

ASP.NET常用加密解密方法

一.MD5加密解密 1.加密 C# 代码   复制 public static string ToMd5(string clearString) { Byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(clearString); string hashedPwd = BitConverter.ToString(((HashAlgorithm)CryptoConfig.CreateFromName("MD5")).Compu

RSA加密解密

rsa加密解密: openssl_pkey_get_private 系列函数,windows下需要加载 extension=php_openssl.dll;linux下extension=openssl.so. 下载开源RSA密钥生成工具openssl(通常Linux系统都自带该程序),解压缩至独立的文件夹,进入其中的bin目录,执行以下命令: openssl genrsa -out rsa_private_key.pem 1024 openssl pkcs8 -topk8 -inform PE

C#_加密解密

一.MD5加密解密 1.加密 public static string ToMd5(string clearString) { Byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(clearString); string hashedPwd = BitConverter.ToString(((HashAlgorithm)CryptoConfig.CreateFromName("MD5")).ComputeHash(clea

[加密解密]CryptoAPI简介

CryptoAPI概述 Windows CryptoAPI是Microsoft 公司提出的安全加密应用服务框架,也是PKI推荐使用的加密 API.它提供了在Win32 环境下使用认证.编码.加密和签名等安全服务时的标准加密接口,用于增强应用程序的安全性与可控性.应用开发者可以在不了解复杂的加密机制和加密算法的情况下,简便.快速地开发出标准.通用和易于扩展的安全加密应用程序.CryptoAPI 提供的功能主要有:密钥管理.数据加密和解密.数字签名和验证.证书管理.可信根证书管理.数据编码和解码.数