繁体   English   中英

“参数不正确。” RSACryptoServiceProvider WCF客户端/服务器C#

[英]“The parameter is incorrect.” RSACryptoServiceProvider WCF Client/Server C#

我有两个本地控制台应用程序,一个是生成公用密钥和专用密钥的服务器,另一个是客户端,通过使用服务从服务器接收公用密钥并将其发送给服务器的客户端。 然后,该服务尝试解密该消息并将其保存在服务器中,但是会抛出CryptographicException异常,表明调用RSA.Decrypt时参数不正确。

代码示例:

byte[] decryptedByteMessage;
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
{
       decryptedByteMessage = RSADecrypt(encryptedByteMessage, privKey);
}

解码

static public byte[] RSADecrypt(byte[] DataToDecrypt, RSAParameters RSAKeyInfo)
        {
            try
            {
                byte[] decryptedData;
                using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
                {
                    RSA.ImportParameters(RSAKeyInfo);
                    decryptedData = RSA.Decrypt(DataToDecrypt, false); // exception here
                }
                return decryptedData;
            }
            catch (CryptographicException e)
            {
                Console.Write(e.Message);
                return null;
            }
        }

我可以看到这些键是正确的,并且相同的代码在单个控制台应用程序中也可以正常工作。 我试图寻找一种解决方案,(也许需要CspParameters吗?),但这只是使其变得更加混乱。

如果您能给我一些解决方法,我将不胜感激。

问题是我在Visual Studio中以调试模式运行应用程序。

我尝试使用实际的Release可执行文件,并且一切都按预期运行。

暂无
暂无

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

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