前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RSA加密/解密

RSA加密/解密

原创
作者头像
arnodev
发布2023-03-17 21:12:53
6.3K0
发布2023-03-17 21:12:53
举报
文章被收录于专栏:加密解密

一、RSA加密/解密在线教程

1.1、RSA算法介绍

RSA加密算法是一种可逆的非对称加密算法,即RSA加密时候用的密钥(公钥)和RSA解密时用的密钥(私钥)不是同一把。基本原理是将两个很大的质数相乘很容易得到乘积,但是该乘积分解质因数却很困难。RSA算法被广泛的用于加密解密和RSA签名/验证等领域。

1.2、RSA算法的速度与安全性

比起AES等其它对称算法来说,RSA运算更为复杂,所以要慢得多。

从安全角度来讲,一般建议RSA密钥长度至少为2048位。世界上还没有任何可靠的攻击RSA算法的方式,如果密钥足够长或者没有密钥,想要RSA解密或者解析RSA解密基本是不可能的。RSA从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

1.3、RSA存储格式

DER是RSA密钥的二进制格式,PEM是DER转码为Base64的字符格式,由于DER是二进制格式,不便于阅读和理解。一般而言,密钥都是通过PEM的格式进行存储的,本工具所选择的RSA密钥格式也就是PEM编码存储的格式。

PKCS #1 标准主要用于 RSA密钥,其RSA公钥和RSA私钥PEM格式:

代码语言:javascript
复制
// PKCS#1公钥格式
-----BEGIN RSA PUBLIC KEY-----
BASE64 DATA...
-----END RSA PUBLIC KEY-----
// PKCS#1私钥格式
-----BEGIN RSA PRIVATE KEY-----
BASE64 DATA...
-----END RSA PRIVATE KEY-----

PKCS#8 标准定义了一个密钥格式的通用方案,其公钥和私钥PEM格式:

代码语言:javascript
复制
// PKCS#8公钥格式
-----BEGIN PUBLIC KEY-----
BASE64 DATA...
-----END PUBLIC KEY-----
// PKCS#8私钥格式
-----BEGIN PRIVATE KEY-----
BASE64 DATA...
-----END PRIVATE KEY-----

经过对比,我们可以明显看到,PKCS #8 格式是没有rsa字样的,因为PKCS#8是一个通用型的密钥格式方案,它不仅为RSA算法所使用,同样也可以被其它加密解密算法所使用。

二、RSA加密/解密使用场景

本在线工具参考国际标准和行业惯例,列出五种主流的使用场景。虽然很多系统或函数默认使用公钥加密、私钥解密,但是RSA算法也支持私钥加密、公钥解密。因此从跨平台和兼容性考虑,一般推荐使用前者。

2.1、场景一:生成RSA公钥和私钥

首先输入证书密码(一般为空,无须输入),然后选择密钥格式和密钥长度,最后点击按钮即可得到对应的RSA密钥对,你可以预览、复制和下载RSA密钥对到本地。

2.2、场景二:使用RSA公钥加密文本

RSA加密解密算法支持三种填充模式,分别是ENCRYPTION_OAEP、ENCRYPTION_PKCS1、ENCRYPTION_NONE,RSA填充是为了和公钥等长。

  • ENCRYPTION_OAEP:最优非对称加密填充,英文为:Optimal Asymmetric Encryption Padding,是RSA加密和RSA解密最新最安全的推荐填充模式。当填充模式选择ENCRYPTION_OAEP时,必须选择参数Hash和MGFHash。
  • ENCRYPTION_PKCS1:随机填充数据模式,每次加密的结果都不一样,是RSA加密和RSA解密使用最为广泛的填充模式。当填充模式选择ENCRYPTION_PKCS1时,无须选择参数Hash和MGFHash。
  • ENCRYPTION_NONE:不填充模式,是RSA加密和RSA解密使用较少的填充模式。当填充模式选择ENCRYPTION_NONE时,无须选择参数Hash和MGFHash。

2.3、场景三:使用RSA私钥解密文本

主要用于RSA解密,具体RSA解密的操作方式为:

首先选择填充模式,当填充模式选择ENCRYPTION_OAEP时,必须选择参数Hash和MGFHash。如果证书设置了密码,则必须输入密码,然后输入RSA解密文本和RSA私钥。其中RSA解密文本必须为Base64编码后的字符串,最后点击按钮进行RSA解密。RSA解密时间受文本和网络影响,请耐心等待,RSA解密成功即可得到加密前的原始文本。

2.4、场景四:使用RSA私钥生成数字签名

RSA签名/验证算法支持两种填充模式,分别是SIGNATURE_PSS、SIGNATURE_PKCS1。

  • SIGNATURE_PSS:概率签名方案,英文为:Probabilistic Signature Scheme,它是RSA签名的推荐方案,用于替代PKCS1。当填充模式选择SIGNATURE_PSS时,必须选择参数Hash和MGFHash。
  • SIGNATURE_PKCS1:公钥密码标准的第一版方案,此RSA签名的填充模式虽然已经不安全但是使用最为广泛。当填充模式选择SIGNATURE_PKCS1时,必须选择参数Hash。

2.5、场景五:使用RSA公钥验证数字签名

首先选择填充模式,当填充模式选择SIGNATURE_PSS时,必须选择参数Hash和MGFHash,填充模式为SIGNATURE_PKCS1时,必须选择参数Hash,然后输入需要验证的原始文本、RSA公钥和数字签名即可。其中参数、原文和数字签名匹配时,则验证结果返回true,否则返回false。

本教程引自《试试吧 - 领先的在线工具平台》,主打原创,全部免费,打开浏览器搜:试试吧,全网排名第一的就是本站,快来试试吧:RSA加密/解密 - 在线工具

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、RSA加密/解密在线教程
    • 1.1、RSA算法介绍
      • 1.2、RSA算法的速度与安全性
        • 1.3、RSA存储格式
        • 二、RSA加密/解密使用场景
          • 2.1、场景一:生成RSA公钥和私钥
            • 2.2、场景二:使用RSA公钥加密文本
              • 2.3、场景三:使用RSA私钥解密文本
                • 2.4、场景四:使用RSA私钥生成数字签名
                  • 2.5、场景五:使用RSA公钥验证数字签名
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档