一:使用 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, 数字证书,签名,公钥密钥,非对称加密等知识

RSA

GPG

使用 GPG 对数据进行加密解密签名的更多相关文章

  1. iOS使用Security.framework进行RSA 加密解密签名和验证签名

    iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...

  2. iOS中使用RSA对数据进行加密解密

    RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名. 本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境 mac os openssl-1.0. ...

  3. RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密

    原文:RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密 C#在using System.Security.Cryptograph ...

  4. 与众不同 windows phone (28) - Feature(特性)之手机方向, 本地化, 应用程序的试用体验, 系统主题资源, 本地数据的加密解密

    原文:与众不同 windows phone (28) - Feature(特性)之手机方向, 本地化, 应用程序的试用体验, 系统主题资源, 本地数据的加密解密 [索引页][源码下载] 与众不同 wi ...

  5. .NET Core 使用RSA算法 加密/解密/签名/验证签名

    前言 前不久移植了支付宝官方的SDK,以适用ASP.NET Core使用支付宝支付,但是最近有好几位用户反应在Linux下使用会出错,调试发现是RSA加密的错误,下面具体讲一讲. RSA在.NET C ...

  6. asp.net core 使用中间件拦截请求和返回数据,并对数据进行加密解密。

    原文:asp.net core 使用中间件拦截请求和返回数据,并对数据进行加密解密. GitHub demo https://github.com/zhanglilong23/Asp.NetCore. ...

  7. 网络安全——数据的加密与签名,RSA介绍

    一. 密码概述 发送者对明文进行加密然后生成密文,接受者再对密文解密得到明文的过程. 现在使用的所有加密算法都是公开的!但是密钥肯定不是公开的. 1 散列(哈希)函数 通常有MD5.SHA1.SHA2 ...

  8. 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 ...

  9. C#的RSA加密解密签名,就为了支持PEM PKCS#8格式密钥对的导入导出

    差点造了一整个轮子 .Net Framework 4.5 里面的RSA功能,并未提供简单对PEM密钥格式的支持(.Net Core有咩?),差点(还远着)造了一整个轮子,就为了支持PEM PKCS#8 ...

随机推荐

  1. 记录工作中用到的linux命令

    日常工作中会对centos进行操作,总是会有一些常用的命令记不住,特开一贴,记录那些命令,学而时习之.   RPM操作类命令:   查看RPM安装路径: 1.rpm -qa|grep Memcache ...

  2. Linux modules install

    安装模块的时候出现错误:modprobe: chdir(3.0.35-g6774ed9-dirty): No such file or directory. 内核模块没有安装正确.本文记录解决方法. ...

  3. vi全局替换

    http://blog.csdn.net/vindak/article/details/7830547 vi全局替换命令

  4. Android EditText组件drawableLeft属性设置的图片和hint设置的文字之间的距离

    有的时候,我们需要在文本框里放置icon图片,并且设置默认提示文字的时候,需要设置两者之间的间距,如下图: 这里想设置的就是之前的手机icon和”请输入手机号“之间的距离,则可是使用以下的方式: &l ...

  5. Android--ViewPager制作APP引导页

    ViewPager使用FragmentStatePagerAdapter做Adapter,引导页使用多Fragment形式. FragmentStatePagerAdapter代码如下: public ...

  6. input上传按钮 文字修改办法

    解决思路是把input 放在文字的上边,弄成透明的,这样在点文字时,实际是点击了input,这样就实现了文件的上传. 具体代码: <style> #uploadImg{ font-size ...

  7. stl 比较和boost LessThanComparable

    C++ STL的几种常用“比较”概念简述   在C++的现行标准(C++ 98)中,由于没有类似“接口”这样的东西,我们在泛型编程时往往只能对模板类型作一些假设,要求其符合某个需求清单,也就是属于某个 ...

  8. Leetcode: Maximum XOR of Two Numbers in an Array

    Given a non-empty array of numbers, a0, a1, a2, - , an-1, where 0 ≤ ai < 231. Find the maximum re ...

  9. JQ的基本架构

    Jquery的基本架构   引入  以前学习原生JS然后切换到用JQ的时候总觉得很不习惯,甚至有点排斥用JQ.后来自己写项目一直到公司实习用JQ的这段时间,才深深感受到JQ的强大~JQ不仅做到兼容很多 ...

  10. C#窗体WinForm 文件操作

    文件及文件夹操作 C/S:WinForm可以操作客户端文件 Client ServerB/S:浏览器服务 Brower Server 命名空间:using system .IO; 1. File类:文 ...