RSA加密:RSA密码体制是一种公钥密码体制,加密算法公开,以分配的密钥作为加密解密的关键。一般来说,在一对公私钥中,公钥和私钥都可以用来加密和解密,即公钥加密能且只能被对应的私钥进行解密,私钥加密能且只能被对应的公钥进行解密。但我们一般都用公钥加密,私钥解密,而且生成的私钥往往会比公钥蕴含了更多的信息量。(这里说的加密肯定是可逆的,不然直接销毁就可以了没必要再去加密,加密是为了保障数据的安全和验证身份。)

RSA签名:签名就是在这份资料后面增加一段强而有力的证明,以此证明这段信息的发布者和这段信息的有效性完整性。RSA签名常用的就是将这份信息进行hash,得到一个hash值,再将hash值加密作为签名,后缀在信息的末尾。接收方接到传输的资料后,使用私钥解密这段加密过的hash,得到hash值,然后对信息原文进行hash,对比两次hash是否一致(验签)。签名的过程是不可逆的,因为hash是不可逆的,毕竟那么大的文件被hash成一段字符串还能还原的话那就碉堡了。

在使用RSA进行通讯的时候,一般是两者结合,即:加密>签名>解密>验签

加密和可逆的,而签名是不可逆的

我们可以对一份资料用公钥加密,再用私钥解密,但我们对这份资料进行签名则是不可逆的,因为哈希本身是不可逆的。

加密和签名都涉及到了使用公钥加密,前者加密了信息,后者加密了信息的hash

前者使用加密保障内容不被泄露,后者使用加密用来身份验证。

为什么签名是对信息hash之后加密,而不是加密一些特定的字符?

这是因为防止中间人尝试向私钥拥有者反复发送一些特定的字符,得到加密后的信息,达到破解或者伪造之类的目的。所以用私钥随便加密信息是不安全的。

RSA的签名与加密一般用在需要非常安全的环境下,例如支付

由于RSA签名与加密需要比平时的通讯产生更多的工作量,所以一般只会用在需要保证数据安全的地方(但随着设备性能的提升它会扩展到很多方面,毕竟保证隐私也是很重要的,虽然有些人并不在乎这些)。HTTPS的加密解密可以参考http://www.jianshu.com/p/1b48c37b94b9

原文:https://blog.csdn.net/weixin_33769207/article/details/87151576

RSA加密与签名的区别相关推荐

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

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

  2. Java使用RSA加密解密签名及校验

    RSA加密解密类: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; i ...

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

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

  4. java rsa 验_Java使用RSA加密解密签名及校验

    RSA加密解密类: package com.ihep; import java.io.BufferedReader; import java.io.BufferedWriter; import jav ...

  5. java rsa签名_Java使用RSA加密解密签名及校验

    由于项目要用到非对称加密解密签名校验什么的,于是参考<Java加密解密的艺术>写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享! 一.项目截图 代码下载后,导入到ecli ...

  6. RSA 加密解密签名验签

    api package v1// get请求 import "github.com/gogf/gf/v2/frame/g"type GetKeyReq struct {g.Meta ...

  7. python RSA 加密与签名

    PyCrypto装起来就简单多了,我是直接 sudo easy_install pycrypto 直接搞定的 先生成rsa的公私钥: 打开控制台,输入 openssl  再输入 genrsa -out ...

  8. 一篇搞定RSA加密与SHA签名|与Java完全同步

    看到这篇文章的同学可幸福了,当时在做RSA加密与签名的时候网上的资料简直不要太老,做完后实在是忍受不下去了,这篇文章我会详细讲解iOS如何实现RSA加密与签名,并且与Java完全同步,这是我的第二篇博 ...

  9. ios rsa java_一篇搞定RSA加密与SHA签名|与Java完全同步

    本文是投稿文章,作者:Panda_iOS 看到这篇文章的同学可幸福了,当时在做RSA加密与签名的时候网上的资料简直不要太老,做完后实在是忍受不下去了,这篇文章我会详细讲解iOS如何实现RSA加密与签名 ...

  10. RSA加密、解密、签名、验签(验证签名)RSA算法原理

    转载链接:https://www.jianshu.com/p/8dc4a5f64e06 https://www.cnblogs.com/pcheng/p/9629621.html RSA原理:http ...

最新文章

  1. python爬虫scrapy步骤mac系统_Mac中Python 3环境下安装scrapy的方法教程
  2. python入门教程共四本书籍-Python入门书籍有哪些?
  3. 走几步回头看看企业即时通讯
  4. (转)bash条件判断之if语句
  5. Hadoop JobTracker和NameNode运行时参数查看
  6. image转base64
  7. iDoubs的编译问题以及解决方案
  8. Visual studio插件:Visual Svn 替代工具--AnkhSvn
  9. PC端后台项目的总结
  10. 求一元二次方程的实根或虚根
  11. Flutter RSA加密解密
  12. MySQL数据库基本操作,命令行创建数据库、数据表,查询语句,模糊查询、范围查询、判断查询
  13. 修复dhcp client服务器,无法开启DHCP Client服务解决方法
  14. Typora设置标题自动标号
  15. 微信跳一跳游戏的脚本
  16. Vue制作图片翻面效果
  17. threejs正方体六面贴图
  18. 机器学习 EM算法理解
  19. 旺店通·企业奇门和用友BIP接口打通对接实战
  20. 银行会员人脸识别方案

热门文章

  1. 以Graphicslayer为管理组来管理Element.
  2. 谈谈如何优化MYSQL数据库查询
  3. xcode自动刷新resource下的文件
  4. c语言 自定义strcmp
  5. 西点军校的经典法则[转]
  6. Eclipse安装插件支持jQuery智能提示
  7. 引言(NParsing框架功能简介、NParsing的由来)
  8. linux内核之中断和异常
  9. 传输层协议(11):超时重传
  10. Linux线程管理必备:互斥量与条件变量