두 개의 로컬 콘솔 응용 프로그램이 있습니다. 하나는 공용 및 개인 키를 생성하는 서버이고 다른 하나는 서비스를 사용하여 서버에서 공개 키를 받고 암호화 된 메시지를 서버. 그런 다음 서비스가 메시지의 암호를 해독하여 서버에 저장하려고 시도하지만 RSA.Decrypt가 호출 될 때 매개 변수가 올바르지 않음을 알리는 CryptographicException이 throw됩니다."매개 변수가 잘못되었습니다." RSACryptoServiceProvider WCF 클라이언트/서버 C#
코드 샘플 :
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가 필요합니까?)하지만 지금은 더 혼란스럽게 만들고 있습니다.
이 문제를 해결할 수있는 조언을 주시면 감사하겠습니다.