RSA 非对称加密 数字签名 数字证书
加密 rsa 非对称 数字签名 数字证书
2023-09-27 14:21:25 时间
什么是RSA加密算法
RSA加密算法是一种非对称加密算法,算法的数学基础是极大数分解难题。
RSA加密算法的强度也就是极大数分解的难度,目前700多位(二进制)的数字已经可以破解,1024位认为是比较安全的,2048则是非常安全的。
在RSA加密算法中,密钥由两部分组成,称之为公钥和私钥,私有由发送方自己保存,不能泄漏。公钥由发送方公布出去。发送方发送消息时,会用公钥对消息进行加码,接收方必须要使用对应的私钥才能将加密后的信息解开。因此,只要私钥不泄漏,通信内容就不会被破解。
如何保证消息不会被篡改
虽然使用RSA加密之后,只有持有密钥才可以解密,但是这并不能组织或者发现消息被篡改了。为了防止消息在传输过程中被篡改,引入类数字签名的概念。
数字签名
发送方在发送消息之前,会使用消息摘要算法对发送内容进行摘要,然后用私钥对摘要进行加密,加密后的内容作为数字签名随消息一起发送。接收方收到消息之后,会对消息进行解密,解密之后进行摘要计算,得到摘要。接着对数字签名进行解密,得到另一分摘要,将两份摘要进行对比,如果相同,则说明消息没有被篡改过。
数字证书
虽然RSA算法能保证消息不被破解,数字签名也能保证消息不被篡改,但是RSA算法中使用的公钥却很难有效的分发,因为公钥无法证明自己就是由发送方发出的,它也有可能是恶意的人冒名顶替分发出来的。
为了解决这种问题,需要引入第三方权威机构,发送方和接收方都应该要信任该机构,然后由该机构来给他们办法一个证书,证书包含有颁发机构信息,证书持有人信息,以及证书持有人的公钥,这些信息会使用私钥进行数字签名,这样就能够保证证书的安全。接收方收到这个证书,只要使用第三方权威机构的公钥对证书解密,即可知道证书的真伪。
作者:humc
来源:51CTO
RSA 非对称加密【转】 演示代码:https://pan.baidu.com/s/10rfSUUDEEHvCDEYH0oEVCw Base64工具类,可以让rsa编码的乱码变成一串字符序列
公钥和私钥 这些密码学的概念容易被搞混淆,的确也情有可原。因为公钥、私钥、加密、认证这些都是较为复杂的问题,其概念不太容易理解,理解不透就容易产生各种似是而非的概念,为了让大家对于密码学有进一步的了解,这里我就详细解说一下公钥和私钥的具体作用和使用方法。
相关文章
- 【加密】RSA简介
- 安全专家深度解析,一觉醒来文件加密被逼万元赎金,怎么破?
- 小学生坐马桶上都看得懂的加密与通讯
- PHP开发接口使用RSA进行加密解密方法
- PHP加密JS解密 base64
- 前后端API交互数据加密——AES与RSA混合加密完整实例
- 非对称加密RSA的C#实现
- C# DES加密
- iOS客户端学习之AES加密
- Spring Security 5.x兼容多种密码加密方式
- RSA Android加密的数据服务器上无法解密?
- 利用openssl进行RSA加密解密
- RSA 非对称加密【转】
- 加密原理介绍,代码实现DES、AES、RSA、Base64、MD5
- encryptjs 加密 前端数据(vue 使用 RSA加密、java 后端 RSA解密)
- [crypto]-51.1-python的aes加解密/rsa生成密钥对/rsa加解密/hmac加密
- JAVA实现RSA加密,非对称加密算法
- Android:客户端和服务器之间传输数据加密
- PHP 前后端rsa加密解密的使用
- Unity3D项目程序加密2——对dll进行混淆
- Python 利用字符串切片实现文本内容加密及解密
- Rsa加密实战
- python - RSA的加密和解密
- python RSA模块加密和解密
- unity加密方案
- 我的Android进阶之旅------>Android采用AES+RSA的加密机制对http请求进行加密