GPG加密windows中使用
在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中使用的更多相关文章
- Windows中的权限设置、文件压缩、文件加密、磁盘配额和卷影副本
目录 权限设置 文件夹的NTFS权限 文件的NTFS权限 NTFS权限的应用规则 文件压缩 文件加密 磁盘配额 卷影副本 权限设置的应用 遇到的一个权限问题的小bug 权限问题的实际应用 权限设置 ...
- 如何加密 Windows VM 上的虚拟磁盘
为了增强虚拟机 (VM) 的安全性以及符合性,可以加密 Azure 中的虚拟磁盘. 磁盘是使用 Azure 密钥保管库中受保护的加密密钥加密的. 可以控制这些加密密钥,以及审核对它们的使用. 本文详细 ...
- 下载文件时-修改文件名字 Redis在Windows中安装方法 SVN安装和使用(简单版) WinForm-SQL查询避免UI卡死 Asp.Net MVC Https设置
下载文件时-修改文件名字 1后台代码 /// <summary> /// 文件下载2 /// </summary> /// <param name="Fil ...
- [内网渗透]Windows中的用户帐户与组账户
0x01 用户帐户 1.1 简介 用户帐户是对计算机用户身份的标识,本地用户帐户.密码存在本地计算机上,只对本机有效,存储在本地安全帐户数据库 SAM 中. 文件路径:C: ...
- gpg加密和解密
linux:gpg加密和解密 1 创建密钥 2 查看私钥 3 导出公钥 4 导出私钥 5 导入秘钥 5.1 公钥 6 公钥加密 7 私钥解密 创建密钥 gpg --gen-key 你要求输入一下内容, ...
- Ubuntu下访问Windows中Postgresql
因为项目的原因,需要将Ubuntu中的一些信息记录到Windows中的Postgresql数据库中,查看网上信息,最后成功了,特地记录以下,需要以下步骤: (1)在Windows中Postgresql ...
- Windows中的用户和组以及用户密码处理
目录 用户帐户 Windows 默认账户 Windows 内置用户账户 查看.创建和删除账户 组账户 内置组账户 组的查看.创建和删除 Windows中对用户密码的处理 LM-hash NTLM-ha ...
- windows中抓取hash小结(下)
书接上回,windows中抓取hash小结(上) 指路链接 https://www.cnblogs.com/lcxblogs/p/13957899.html 继续 0x03 从ntds.dit中抓取 ...
- windows中抓取hash小结(上)
我上篇随笔说到了内网中横向移动的几种姿势,横向移动的前提是获取了具有某些权限的用户的明文密码或hash,正愁不知道写点啥,那就来整理一下这个"前提"-----如何在windows系 ...
随机推荐
- MySQL 我自己常用的语句汇总
1,更新,根据一个表更新另一个表,比如批量同步外键 方法一: update 更新表 set 字段 = (select 参考数据 from 参考表 where 参考表.id = 更新表.id); up ...
- layui的多文件列表上传功能前端代码
html页面的代码(注意:引入layui相关的css): <div class="layui-upload" style="margin-left: 130px&q ...
- 一个vue的全局提示框组件
<template> <!-- 全局提示框 --> <div v-show="visible" class="dialog-tips dia ...
- 分享一个正则对html标签的替换
replace_html(parm){ let self = this; return self.trim(parm.replace(new RegExp("<[^<]*> ...
- hook的本质就是在本原可执行文件中加东西
hook的本质就是在本原可执行文件中加东西. 本质就是添加东西:
- node——Commonjs
ECMA只规范了js最近的一些能力,并没有规范当要用js写一个庞大的项目如果使用模块化开发. CommonJS规范了当我们想开发大型程序的时候如何模块化来开发,以及模块化的时候,不同文件的通讯. Co ...
- 使用highcharts动态绘制折线图——so easy
之前学习highcharts发现网上的教程大部分是对highcharts数据的注释,如何动态绘制数据大部分一笔带过,让那些初涉开发的小白云里雾里,所以我就写了一篇这样的博客. <html> ...
- async-validator 的中文文档翻译
阿里出品的 antd 和 ElementUI 组件库中表单校验默认使用的 async-validator,它在 gitbub 上也获得了 3.8k 的 star,可见这个库十分强大,奈何只有英文文档看 ...
- mysql局域网服务搭建
首先配置电脑Mysql环境变量 新建 Mysql服务配置 CMD >命令 : mysql -u root -p 4. 创建用户 Mysql 用户权限分配 5 重启服务 如果还不能访问就一定是你的 ...
- a[i++]=a 数组下标自加优先问题
a[i++]=a 即是: a[i] = a;i ++;先把a赋值给数组a下标为 i 的 元素把 i 自加 1 :即指向下一个元素 =================================== ...