繁体   English   中英

RSACryptoServiceProvider - 解密 - 参数不正确

[英]RSACryptoServiceProvider - Decrypt - The parameter is incorrect

我需要解密文本,但我收到消息The parameter is incorrect

证书正确,它在Windows中注册。

在此输入图像描述

在此输入图像描述

搜索问题,我可以阅读建议更改分配给IIS中的网站的应用程序池中的用户的注释。 我试了但不行。

在第二个图像显示大小计算,但我不确定因为每8减去KeySize分区11。

我正在使用VS2010和.net 4. asp.net proyect使用IIS之类的服务器,不使用Visual Studio Development Server

我可以尝试解决这个问题?

[解]

在Decrypt方法中分配的加密文本是在证书过时的情况下生成的。

文本使用证书加密但随后更改,当尝试使用其他证书解密带有文本的文本时,该方法失败。

使用非对称密码系统(即您的情况下为RSA)加密数据时,输出的大小与模数大小相同。 此外,输入的大小必须小于或等于模数大小。 因此,当您尝试解密密文时,密文的大小必须等于模数的大小(即,因为密钥大小为1024位,所以大小写为128字节)。

因此,您不应该对data变量进行分段,只需将其直接提供给RSACryptoServiceProvider.Decrypt

尝试另一件事是提供truefOAEP在参数rsa.Decrypt因为解密OAEP填充密文与fOAEP设置为false将导致The parameter is incorrect抛出异常。

如果更改了私钥或公钥,则会发生此异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM