ASP.NET Core实现RSA分段加密

这两天主要是公司同事用到了RSA加密,事后也看了下,以为很简单,最终利用RSACryptoServiceProvider来实现RSA加密,然后大致了解到RSACryptoServiceProvider不支持跨平台,此类原先存在于.NET Framework中,本文我讲讲利用RSA.Create来实现各种RSA中加密模式统一封装。


主要是在查找资料时看到了dudu老大写的有关RSA加密的文章,刚好找到了我们项目中需要用到的openssl加密模式对应.NET Core中的Pkcs1,这里实现代码实在有点多,然后自己也遇到如评论中所说加密长度超出的情况,这个时候只能采取分段加密的方式。接下来我们来看看。首先看看如下代码

图片

图片


经到github上查找解决方案,我们需要手动设置值,如下:

图片

图片


其中经过很多尝试,要么是Base64格式不正确,要么是待解密的数据长度和Key Size无效,我第一次尝试是返回的加密字符串,然后进行解密,就是有问题。


最后还是返回字节数组来进行加密和解密,直接看代码,这里解决了加密数据长度超出问题以及各种加密模式的统一,如下统一封装的RSAHelper类。

图片

图片

图片

图片

图片

图片

我们开始进行如下测试,加密数据长度为6890,如下。

图片

图片



我录制的ASP.NET Core MVC基础进阶课程已上线,专注于基础细节和基本原理讲解,41枚视频,仅需30元,郑重承诺:购买看完所有后,仍觉学无所获,钱全部返还。



相关文章

数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98...
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'n...
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采...
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(j...
<% ’判断文件名是否合法 Function isFilename(aFilename...