使用 GPG 对数据进行加密解密签名
一:使用 GPG 对数据进行加密解密签名 基本的工具使用
1. GPG 是GNUPG 免费开源的gpg加密工具,和同pgp兼容,pgp收费。
2. 在mac上使用https://gpgtools.org/
下载安装之后,打开GPG Keychain mac程序,
可以点击新建创建一份自己的公钥和私钥,并把公钥上传到开源服务器上,各服务器间数据同步;

创建完成之后!我们对一个文件加密,解密,签名验证签名就可以了!
选中文件,右键,服务里面即可看到支持的工具

3. 在 windows 上使用 https://www.gpg4win.org/
下载安装之后 File new 同样新建立一份 公钥密钥对,也可以上传到开源公钥服务器,查询时以邮件为标识!

同样,选中要加密或解密的文件 右键即可看到提供的服务

4. linux上直接安装 Gnupg源码,编译安装
http://www.jianshu.com/p/268064e67719
二:加密解密,签名使用的流程
大致流程:
用户A用户名B,分别生成各自的解密对,公钥A,公钥B,私钥A,私钥B;
数据uA.txt,uB.txt
签名:用户A用 私钥A签名uA.txt并把公钥A 发给用户B,用户B 用以上工具,先导入公钥A,然后验证签名;
加密:用户A 先导入用户B的,公钥B;然后用 公钥B加密uA.txt, 发送用户B,用户B收到后,用私钥B解密数据即可;
利用签名和RSA加密的机制,不仅可以确保数据安全,还可以确保数据未串改以及不可否认性
当然这里尤其重要的一点就是私钥,,为保证绝对安全,私钥是不能网络传输的;
以下演示在 mac上签名加密以 win上验证签名和解密
mac 和win的密钥对交换需要提前导入,并设置互相信任对方的公钥
mac 上在列表中选中公钥,右键,细节--密钥---Ownertrust---选择信任程度
win上 在列表中选中公钥,右键,Change ownertrust---选择信任程序
1. 签名文件 以及加密文件 mac.txt (签名用的是mac的私钥,加密用的是win的 公钥)

签名得到 mac.txt.sig
加密得到 mac.txt.gpg
2. 在 win上 验证签名和解密 (验证签名用的是mac的公钥,解密用的是win 的私钥)


参考:其他基础请参考,RSA, 数字证书,签名,公钥密钥,非对称加密等知识
使用 GPG 对数据进行加密解密签名的更多相关文章
- iOS使用Security.framework进行RSA 加密解密签名和验证签名
iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...
- iOS中使用RSA对数据进行加密解密
RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名. 本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境 mac os openssl-1.0. ...
- RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
原文:RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密 C#在using System.Security.Cryptograph ...
- 与众不同 windows phone (28) - Feature(特性)之手机方向, 本地化, 应用程序的试用体验, 系统主题资源, 本地数据的加密解密
原文:与众不同 windows phone (28) - Feature(特性)之手机方向, 本地化, 应用程序的试用体验, 系统主题资源, 本地数据的加密解密 [索引页][源码下载] 与众不同 wi ...
- .NET Core 使用RSA算法 加密/解密/签名/验证签名
前言 前不久移植了支付宝官方的SDK,以适用ASP.NET Core使用支付宝支付,但是最近有好几位用户反应在Linux下使用会出错,调试发现是RSA加密的错误,下面具体讲一讲. RSA在.NET C ...
- asp.net core 使用中间件拦截请求和返回数据,并对数据进行加密解密。
原文:asp.net core 使用中间件拦截请求和返回数据,并对数据进行加密解密. GitHub demo https://github.com/zhanglilong23/Asp.NetCore. ...
- 网络安全——数据的加密与签名,RSA介绍
一. 密码概述 发送者对明文进行加密然后生成密文,接受者再对密文解密得到明文的过程. 现在使用的所有加密算法都是公开的!但是密钥肯定不是公开的. 1 散列(哈希)函数 通常有MD5.SHA1.SHA2 ...
- Java使用RSA加密解密签名及校验
RSA加密解密类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...
- C#的RSA加密解密签名,就为了支持PEM PKCS#8格式密钥对的导入导出
差点造了一整个轮子 .Net Framework 4.5 里面的RSA功能,并未提供简单对PEM密钥格式的支持(.Net Core有咩?),差点(还远着)造了一整个轮子,就为了支持PEM PKCS#8 ...
随机推荐
- java 截取pdf
最近在读一本电子书,pdf中频繁引用后文的内容(页码),必须实时的跳过去看,但是扫描版的pdf的页码往往从封面就开始计数,而且盗版还经常有一些做广告的页面,这就导致pdf reader 索引的页面并不 ...
- k8s入门系列之介绍篇
•Kubernetes介绍1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境2.什么是ku ...
- wkwebview a target="_blank" 打不开链接的解决方案
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigatio ...
- Linux的硬链接为何不能链接目录
Linux中的目录文件是特殊的文件,其中的数据是一个关联列表的,像c++中的map,或者Python中的dict,保存每个文件名(包括子目录,Linux中一切皆文件!)到iNode的映射.iNode本 ...
- git server服务器搭建
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579 ...
- sql server 中一次insert 多条的写法
1.SELECT INTO FROM语句 注意此处 要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中.示例如下 2.INSERT ...
- 【final】站立会议---11.28
名称:nice! 组长:李权 成员:韩媛媛 刘芳芳 宫丽君 于淼 项目名称:约跑app 时间:11月28日 12:30 内容: 新任务的分配 1.李权分配任务 2.韩媛媛写站立会议 3.刘芳芳修改BU ...
- 《zw版·Halcon-delphi系列原创教程》 只有2行代码的超市收款单ocr脚本
<zw版·Halcon-delphi系列原创教程> 只有2行代码的超市收款单ocr脚本只有2行代码的超市收款单ocr脚本 发了这么多教程,有网友问,为什么没有ocr的. 的确,在 ...
- php中rsa加密及解密和签名及验签
加密的内容长度限制为密钥长度少位,如位的密钥最多加密的内容为个长度. 公钥加密 $public_content=file_get_contents(公钥路径); $public_key=openssl ...
- 05-IP核应用之计数器——小梅哥FPGA设计思想与验证方法视频教程配套文档
芯航线--普利斯顿队长精心奉献 实验目的:了解FPGA的IP核相关知识并以计数器IP核为例学会基本IP使用的流程 实验平台:无 实验原理: IP核(Intellectual Propert ...