RSA加解密、验解签区别
一、RSA加密简介
RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。
二、RSA加密、签名区别
加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说,加密是为了防止信息被泄露,而签名是为了防止信息被篡改。这里举2个例子说明。
第一个场景:战场上,B要给A传递一条消息,内容为某一指令。
RSA的加密过程如下:
(1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。
(2)A传递自己的公钥给B,B用A的公钥对消息进行加密。
(3)A接收到B加密的消息,利用A自己的私钥对消息进行解密。
在这个过程中,只有2次传递过程,第一次是A传递公钥给B,第二次是B传递加密消息给A,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行解密,防止了消息内容的泄露。
第二个场景:A收到B发的消息后,需要进行回复“收到”。
RSA签名的过程如下:
(1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。
(2)A用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给B。
(3)B收到消息后,在获取A的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是A回复的。
在这个过程中,只有2次传递过程,第一次是A传递加签的消息和消息本身给B,第二次是B获取A的公钥,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行签名,即使知道了消息内容,也无法伪造带签名的回复给B,防止了消息内容的篡改。
但是,综合两个场景你会发现,第一个场景虽然被截获的消息没有泄露,但是可以利用截获的公钥,将假指令进行加密,然后传递给A。第二个场景虽然截获的消息不能被篡改,但是消息的内容可以利用公钥验签来获得,并不能防止泄露。所以在实际应用中,要根据情况使用,也可以同时使用加密和签名,比如A和B都有一套自己的公钥和私钥,当A要给B发送消息时,先用B的公钥对消息加密,再对加密的消息使用A的私钥加签名,达到既不泄露也不被篡改,更能保证消息的安全性。
总结:公钥加密、私钥解密、私钥签名、公钥验签;也可以两套公私秘钥使用,进行私钥加密、私钥签名、公钥解密、公钥验签。
RSA加解密、验解签区别相关推荐
- Python | Python 实现RSA加解密 验签 无 长度限制 加密解密, 分段加密
系列文章目录 Python | Flask 解决跨域问题 文章目录 系列文章目录 为什么要分段加密 代码示例 测试 测试结果 为什么要分段加密 加密的字段长短规则如下: 加密的 plaintext 最 ...
- RSA加解密过程详解
RSA加解密过程详解 RSA加密是一种非对称加密,由一对密钥来完成加解密过程,分别为公钥和私钥. RSA的加密过程如下: (1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留.公钥为公开的,任何 ...
- ECDSA算法加解密验签
前段时间,因为公司业务需求研究了一下加密验签算法,找到了网上一位大佬的研究代码参考 Java中加密算法介绍及其实现 - 枫飘雪落 - 博客园 在大佬的研究中说明中找到了我需要的算法介绍,但是下载了大佬 ...
- 区块链背后的信息安全(4)RSA加解密及签名算法的技术原理及其Go语言实现
# RSA加解密及签名算法的技术原理及其Go语言实现 对称加密中,加密和解密使用相同的密钥,因此必须向解密者配送密钥,即密钥配送问题. 而非对称加密中,由于加密和解密分别使用公钥和私钥,而公钥是公开的 ...
- 前后端跨语言RSA加解密和签名验证实现(js+python)
信息安全课程作业,敲了整整4天才基本搞定,还有一小问题没解决,可以的话评论区留言感激不尽. 总体思路: 该系统后端使用python的tornado框架(专门实现聊天功能的框架,笔者也只学了一天),前端 ...
- 前后端java+vue 实现rsa 加解密与摘要签名算法
RSA有两个密钥,一个是公开的,称为公开密钥:一个是私密的,称为私密密钥. 特点: 公开密钥是对大众公开的,私密密钥是服务器私有的,两者不能互推得出. 用公开密钥对数据进行加密,私密密钥可解密:私密密 ...
- SHA256withRSA签名,RSA加解密
SHA256withRSA签名,RSA加解密 简介 加密.签名流程图 具体代码实现 简介 项目用到了加密相关知识,主要包括加解密和签名过程.文章用java简单实现这一过程的工具类.(不包括公私钥的生成 ...
- RSA加解密及RSA签名验证
工作中用到了非对称加密:RSA加解密及签名验证,根据查到的信息及工作中的问题总结,现在整理如下: 1. 准备好公钥和私钥,使用openssl工具生成RSA公钥和私钥对 1)生成RSA私钥: genrs ...
- RSA加解密的OAEP MGF1 填充解析
RSA加解密的OAEP MGF1 填充解析 加密时的填充 PKCS#1 v2.1: RSA密码学规范中关于 OAEP的模式的讲解如下: RSAES-OAEP-ENCRYPT (( n, e), M, ...
最新文章
- 一个免费分享绘图代码的网站
- 漫画:什么是 “代理模式” ?
- windows下定期清理超过一定时间的文件
- Django 框架14: 缓存
- Python数据分析·读取CSV文件转为字典
- python中csv文件的读写
- 在 Vue 中正确使用 防抖 和 节流
- gsu 2524 Frozen Rose-Heads
- 96D - Police Stations
- 赵强老师免费公开课第一季:Hadoop的背景起源
- 一图看懂圆柱侧面与螺旋线关系,你懂了吗?
- C#调用WebService实例和开发(转)
- java 正则 实例_Java正则表达式示例
- springboot宿舍管理系统
- Windows的SVN的下载和安装
- java8分组求和_Java8 stream 中利用 groupingBy 进行多字段分组求和案例
- 我是如何写出一本畅销技术书的
- pycharm如何更换背景图片
- 免费服务器领取步骤(详细)
- 乐视网正式聘用刘延峰担任公司总经理 任期三年
热门文章
- 小米5s升级android7.0,官方回应 小米5s升级安卓7.0还要再等等
- Oracle sale什么意思,sale是什么意思
- 520拿去表白,表白不成功你打我(Matlab代码动态图)
- http请求头origin、referer和host区别
- Android 调用系统相机,拍照,并上传图片所注意的一些问题
- 测试流程及测试用例的编写方法
- vivo适配android10,更快更安全,vivo产品经理宣布:iQOO将首批适配Android 10正式版...
- 牛客网 2018年长沙理工大学第十三届程序设计竞赛 K zzq的离散数学教室2[网络流]
- java网页数据采集器
- 线性变换(2)——特征值与特征向量