.net - 为什么 RSAEncryptionPadding.OaepSHA256 出现 RSA 加密错误?
问题描述
以下代码有效。
var plainText = "abc";
var plainBytes = UTF8Encoding.UTF8.GetBytes(plainText);
var rsaParams = new RSAParameters();
rsaParams.Modulus = Convert.FromBase64String("...");
rsaParams.Exponent = Convert.FromBase64String("...");
var rsa = new RSACryptoServiceProvider(2048);
rsa.ImportParameters(rsaParams);
var actualEncryptedBytes = rsa.Encrypt(plainBytes, RSAEncryptionPadding.OaepSHA1);
但是以下不起作用并且“指定的填充模式对此算法无效。”错误。为什么?
var plainText = "abc";
var plainBytes = UTF8Encoding.UTF8.GetBytes(plainText);
var rsaParams = new RSAParameters();
rsaParams.Modulus = Convert.FromBase64String("...");
rsaParams.Exponent = Convert.FromBase64String("...");
var rsa = new RSACryptoServiceProvider(2048);
rsa.ImportParameters(rsaParams);
var actualEncryptedBytes = rsa.Encrypt(plainBytes, RSAEncryptionPadding.OaepSHA256);
解决方案
感谢上面的 Topaco,以下代码有效:
var rsaParams = new RSAParameters();
rsaParams.Modulus = Convert.FromBase64String("...");
rsaParams.Exponent = Convert.FromBase64String("...");
var rsa = RSA.Create(rsaParams);
var actualEncryptedBytes = rsa.Encrypt(plainBytes, RSAEncryptionPadding.OaepSHA256);
推荐阅读
- vector - julia向量空间模型包?
- c# - 使用 htmlagilitypack 解析单个项目中的 HTML 类
- mysql - 如何在休眠中使用mysql系统变量?
- python - 多类多标签简单模型
- javascript - 在 Chrome 版本 79.0.3945.88 中,变量在调试器鼠标悬停时没有显示任何值
- dafny - 为什么 Dafny 认为在使用 ghost 变量时这个前提条件可能存在问题?
- excel - 从 Excel 工作表中查找和提取数据并使用 VBA 将其粘贴到相关列中
- sql - 合并两个表后执行一个函数
- spring-boot - 如何在 Thymeleaf 中将 th:text 和静态内容与 html 标签连接起来?
- sql-server - 使用 gorm 连接到 sql server 命名实例,主机名中出现无效字符“\\”错误