RSA加密与签名的区别
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加密与签名的区别相关推荐
- iOS使用Security.framework进行RSA 加密解密签名和验证签名
iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...
- Java使用RSA加密解密签名及校验
RSA加密解密类: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; i ...
- C#的RSA加密解密签名,就为了支持PEM PKCS#8格式密钥对的导入导出
差点造了一整个轮子 .Net Framework 4.5 里面的RSA功能,并未提供简单对PEM密钥格式的支持(.Net Core有咩?),差点(还远着)造了一整个轮子,就为了支持PEM PKCS#8 ...
- java rsa 验_Java使用RSA加密解密签名及校验
RSA加密解密类: package com.ihep; import java.io.BufferedReader; import java.io.BufferedWriter; import jav ...
- java rsa签名_Java使用RSA加密解密签名及校验
由于项目要用到非对称加密解密签名校验什么的,于是参考<Java加密解密的艺术>写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享! 一.项目截图 代码下载后,导入到ecli ...
- RSA 加密解密签名验签
api package v1// get请求 import "github.com/gogf/gf/v2/frame/g"type GetKeyReq struct {g.Meta ...
- python RSA 加密与签名
PyCrypto装起来就简单多了,我是直接 sudo easy_install pycrypto 直接搞定的 先生成rsa的公私钥: 打开控制台,输入 openssl 再输入 genrsa -out ...
- 一篇搞定RSA加密与SHA签名|与Java完全同步
看到这篇文章的同学可幸福了,当时在做RSA加密与签名的时候网上的资料简直不要太老,做完后实在是忍受不下去了,这篇文章我会详细讲解iOS如何实现RSA加密与签名,并且与Java完全同步,这是我的第二篇博 ...
- ios rsa java_一篇搞定RSA加密与SHA签名|与Java完全同步
本文是投稿文章,作者:Panda_iOS 看到这篇文章的同学可幸福了,当时在做RSA加密与签名的时候网上的资料简直不要太老,做完后实在是忍受不下去了,这篇文章我会详细讲解iOS如何实现RSA加密与签名 ...
- RSA加密、解密、签名、验签(验证签名)RSA算法原理
转载链接:https://www.jianshu.com/p/8dc4a5f64e06 https://www.cnblogs.com/pcheng/p/9629621.html RSA原理:http ...
最新文章
- python爬虫scrapy步骤mac系统_Mac中Python 3环境下安装scrapy的方法教程
- python入门教程共四本书籍-Python入门书籍有哪些?
- 走几步回头看看企业即时通讯
- (转)bash条件判断之if语句
- Hadoop JobTracker和NameNode运行时参数查看
- image转base64
- iDoubs的编译问题以及解决方案
- Visual studio插件:Visual Svn 替代工具--AnkhSvn
- PC端后台项目的总结
- 求一元二次方程的实根或虚根
- Flutter RSA加密解密
- MySQL数据库基本操作,命令行创建数据库、数据表,查询语句,模糊查询、范围查询、判断查询
- 修复dhcp client服务器,无法开启DHCP Client服务解决方法
- Typora设置标题自动标号
- 微信跳一跳游戏的脚本
- Vue制作图片翻面效果
- threejs正方体六面贴图
- 机器学习 EM算法理解
- 旺店通·企业奇门和用友BIP接口打通对接实战
- 银行会员人脸识别方案