![](/img/trans.png)
[英]Can RSACryptoServiceProvider.Decrypt() return incorrect data?
[英]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
。
嘗試另一件事是提供true
的fOAEP
在參數rsa.Decrypt
因為解密OAEP填充密文與fOAEP
設置為false將導致The parameter is incorrect
拋出異常。
如果更改了私鑰或公鑰,則會發生此異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.