RSA加密、解密、签名、验签介绍
参考链接:https://www.cnblogs.com/pcheng/p/9629621.html
RAS简介
RSA加密是非对称加密,由一对秘钥进行完成加密解密,分别称为公钥和私钥,公钥加密,私钥解密,RSA可以完成加密和签名;
加密与签名的区别
加密是为了防止信息被泄露,签名是为了防止信息被篡改;
RSA加密过程:
假如B要发消息给A,首先A在本地生产一对秘钥,公钥和私钥,并将公钥发送给B,B使用公钥对消息进行加密,然后传输给A,A接收到消息后在本地使用私钥解密;
缺点:这种加密过程保证了消息不被泄露,但是避免不了消息被篡改,假如B发送给A的消息被黑客劫持,他通过公钥,自己伪造一条消息,通过公钥加密,发送给A,这样A收到的消息就不是B发送给A的了;
RSA签名过程:
A发送消息给B的时候,用私钥对消息进行加签,将加签后的消息与消息本体发给B,B使用公钥进行验签,如果验签出来的内容和消息本身一致,证明消息才是A回复的;
这样也会有一个问题,当黑客获取到消息后,可以使用公钥验签,来查看消息,并不能防止消息泄露;
总结:公钥加密、私钥解密、私钥签名、公钥验签。
所以在实际应用中,要根据情况使用,也可以同时使用加密和签名,比如A和B都有一套自己的公钥和私钥,当A要给B发送消息时,先用B的公钥对消息加密,再对加密的消息使用A的私钥加签名,达到既不泄露也不被篡改,更能保证消息的安全性。
A发送消息给B时:
A:加密+加签(B公钥加密,A私钥加签)
B:验签+解密(A公钥验签,B私钥解密)
假如中间消息被劫持,即使有A,B的公钥:对A发送给B的消息,因为没有B的私钥,所以消息不会泄露;因为没有A的私钥,所以消息不会篡改。
签名的时候,会泄露:因为签名黑客可以通过公钥验签,获取消息内容;
加密的时候,会被篡改:可以拦截消息,将自己定义的信息使用公钥加密传递给对方;
RSA加密、解密、签名、验签介绍相关推荐
- RSA 加密解密签名验签
api package v1// get请求 import "github.com/gogf/gf/v2/frame/g"type GetKeyReq struct {g.Meta ...
- RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密 原文:RSACryptoServiceProvider加密解密签名验签和DES ...
- js rsa验签_js rsa sign使用笔记(加密,解密,签名,验签)
你将会收获: js如何加密, 解密 js如何签名, 验签 js和Java交互如何相互解密, 验签(重点) 通过谷歌, 发现jsrsasign库使用者较多. 查看api发现这个库功能很健全. 本文使用方 ...
- C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServic
C#在using System.Security.Cryptography下有 DESCryptoServiceProvider RSACryptoServiceProvider DESCrypto ...
- iOS使用Security.framework进行RSA 加密解密签名和验证签名
iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...
- golang RSA base64 加解密 签名验签
1.秘钥.加密/签名字符串加密的格式 目前主要见到有hex及base64 (1)hex 针对hex的加解密 import ("encoding/hex" ) hex.DecodeS ...
- java rsa 验_Java使用RSA加密解密签名及校验
RSA加密解密类: package com.ihep; import java.io.BufferedReader; import java.io.BufferedWriter; import jav ...
- Java使用RSA加密解密签名及校验
RSA加密解密类: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; i ...
- 数据安全管理:RSA加密算法,签名验签流程详解
本文源码:GitHub·点这里 || GitEE·点这里 一.RSA算法简介 1.加密解密 RSA加密是一种非对称加密,在公开密钥加密和电子商业中RSA被广泛使用.可以在不直接传递密钥的情况下,完成加 ...
- RSA加密算法补充签名验签部分
小编很早之前写过一篇文章:RSA加密算法 以前封装的这一套还不错.但是缺少网络中经常要使用到的签名验签部分,所以在这里补充一下. 先晒一下总的封装: package com.taldh; /** Co ...
最新文章
- 招聘|追觅科技VSLAM​、CV算法实习生招聘
- 10.29 工作笔记 ndk编译C++,提示找不到头文件(ndk-build error: string: No such file or directory)...
- python的基础知识可以应用到哪方面-Python基础知识
- Linux不仅仅是开源
- Netty的ChannelFuture和ChannelPromise
- html h1 背影设为图片,CSS Backgrounds(背景)
- python使用opencv会蓝屏_Opencv和DirectShow一起做蓝屏抠像
- js将手机号中间四位变成*号
- ActiveMQ安装配置
- 从数据传输速率的视角思考信道利用率
- unity粒子特效附上贴图后播放动画
- 火狐浏览器怎么打不开网页
- java毕业设计——基于java+Spring+SSH的CRM客户关系管理系统设计与实现(毕业论文+程序源码)——CRM客户关系管理系统
- w10用计算机卸载,win10电脑卸载系统内置应用软件的简单方法
- 7-11 公约数与公倍数 (10 分)
- fatal error LNK1123 错误解决方法
- 在 WPF 中使用 Prism DryIOC 加载应用程序时导航到默认视图
- cpu、socket、core、thread 等术语之间的关系
- 在spring boot中使用@WebFilter配置filter(包括排除URL)
- ChatGPT大封号,注册功能关闭!亚洲成重灾区,网友喊话:不要登录,不要登录...