我需要解密文本,但我收到消息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
。
另一件事是为true
中的fOAEP
参数提供rsa.Decrypt
,因为解密用fOAEP
设置为false的OAEP填充密文会导致The parameter is incorrect
异常被抛出。
如果更改了私钥或公钥,则会发生此异常。