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

2015-06-15 by u014076884

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(根证书已定义或跳过设置)即可。

创建密钥对

      运行Kleopatra,点击File – New Certificate,会弹出Certificate Creation Wizard(证书创建向导)选择第一项 Create a personal OpenPGP key pair。填入Name(姓名)、Email(电子邮箱地址)和Comment(附加信息)。点击Advanced Settings,可以进行高级设置,为了增强安全性,建议选择最长的4096 bits,其余维持默认设置即可。点击Create Key,之后输入Passphrase,点击OK。

请牢记Passphrase

      ,因为在使用自己的私钥时需要输入Passphrase。在创建的过程中,可以在下图所示的文本框中随意打字或者移动这一窗口,计算机将利用IO生成随机数。

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

导入导出秘钥

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

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

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

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

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

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

加密文本

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

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

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

解密文本

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

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

      本人需要集成到asp.net程序中

GPG加密windows中使用的更多相关文章

  1. Windows中的权限设置、文件压缩、文件加密、磁盘配额和卷影副本

      目录 权限设置 文件夹的NTFS权限 文件的NTFS权限 NTFS权限的应用规则 文件压缩 文件加密 磁盘配额 卷影副本 权限设置的应用 遇到的一个权限问题的小bug 权限问题的实际应用 权限设置 ...

  2. 如何加密 Windows VM 上的虚拟磁盘

    为了增强虚拟机 (VM) 的安全性以及符合性,可以加密 Azure 中的虚拟磁盘. 磁盘是使用 Azure 密钥保管库中受保护的加密密钥加密的. 可以控制这些加密密钥,以及审核对它们的使用. 本文详细 ...

  3. 下载文件时-修改文件名字 Redis在Windows中安装方法 SVN安装和使用(简单版) WinForm-SQL查询避免UI卡死 Asp.Net MVC Https设置

    下载文件时-修改文件名字   1后台代码 /// <summary> /// 文件下载2 /// </summary> /// <param name="Fil ...

  4. [内网渗透]Windows中的用户帐户与组账户

    0x01 用户帐户 1.1 简介        用户帐户是对计算机用户身份的标识,本地用户帐户.密码存在本地计算机上,只对本机有效,存储在本地安全帐户数据库 SAM 中.        文件路径:C: ...

  5. gpg加密和解密

    linux:gpg加密和解密 1 创建密钥 2 查看私钥 3 导出公钥 4 导出私钥 5 导入秘钥 5.1 公钥 6 公钥加密 7 私钥解密 创建密钥 gpg --gen-key 你要求输入一下内容, ...

  6. Ubuntu下访问Windows中Postgresql

    因为项目的原因,需要将Ubuntu中的一些信息记录到Windows中的Postgresql数据库中,查看网上信息,最后成功了,特地记录以下,需要以下步骤: (1)在Windows中Postgresql ...

  7. Windows中的用户和组以及用户密码处理

    目录 用户帐户 Windows 默认账户 Windows 内置用户账户 查看.创建和删除账户 组账户 内置组账户 组的查看.创建和删除 Windows中对用户密码的处理 LM-hash NTLM-ha ...

  8. windows中抓取hash小结(下)

    书接上回,windows中抓取hash小结(上) 指路链接 https://www.cnblogs.com/lcxblogs/p/13957899.html 继续 0x03 从ntds.dit中抓取 ...

  9. windows中抓取hash小结(上)

    我上篇随笔说到了内网中横向移动的几种姿势,横向移动的前提是获取了具有某些权限的用户的明文密码或hash,正愁不知道写点啥,那就来整理一下这个"前提"-----如何在windows系 ...

随机推荐

  1. 14. Longest Common Prefix[E]最长公共前缀

    题目 Write a function to find the longest common prefix string amongst an array of strings. If there i ...

  2. 15. 3Sum[M]三数之和

    题目 Given an array nums of n integers, are three elements a, b, c in nums such that a+b+c=0? Find all ...

  3. ROS-VIM

    在终端输入:vimtutor,进入学习教程. 常用快捷键: a 编辑模式; 编辑状态下 回车 换行; Ctrl+n 补全命令; x剪切; p复制; u撤销; :q!不保存退出; :wq保存并退出; 以 ...

  4. linux的chmod,chown命令 详解

    指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案 ...

  5. Spark SQL概念学习系列之分布式SQL引擎

    不多说,直接上干货! parkSQL作为分布式查询引擎:两种方式 除了在Spark程序里使用Spark SQL,我们也可以把Spark SQL当作一个分布式查询引擎来使用,有以下两种使用方式: 1.T ...

  6. Neo4j沙盒实验申请过程步骤(图文详解)

    不多说,直接上干货! 参考博客 http://blog.csdn.net/u012318074/article/details/72793632    (对此表示感谢) 前期博客 我暂时是将Neo4j ...

  7. C# WebAPI小记

    新建WebAPI项目 新建一个Model 安装Entity Framework 添加连接字符串 去Web.config 中 <configuration> 节点中最下面添加 在Word中编 ...

  8. ubuntu16.04 安装 docker

    1,切换到root 2,更新系统 # apt-get update 3,安装 https和ca证书 # apt-get install apt-transport-https ca-certifica ...

  9. P1634 禽兽的传染病

    题目背景 mxj的启发. 题目描述 禽兽患传染病了.一个禽兽会传染x个禽兽.试问n轮传染后有多少禽兽被传染? 输入输出格式 输入格式: 两个数x和n. 输出格式: 一个数:被传染的禽兽数. 输入输出样 ...

  10. (转)Django学习之 第一章:Django介绍

    Django: Python编程Web框架 如果你上djangoproject.com你会发现对Django的如下解释: “Django is a high-level Python Web fram ...