내 서버가 RSACryptoServiceProvider를 만들고 해당 매개 변수를 변수 (RSAKeyInfo)로 내 보냅니다.C# .NET의 RSA 데이터를 어떻게 적절하게 해독합니까?
그런 다음 공개 키가 클라이언트로 전송되고 클라이언트는 공개 키를 사용하여 무언가를 암호화합니다.
이제 서버로 다시 전송할 때이 바로 데이터를 해독 할 수 있어야합니다. 따라서 RSA가 내 경우에 유용합니다.
그러나 이전에 만든 첫 번째 RSACryptoServiceProvider에서 가져온 매개 변수를 사용하여 RSACryptoServiceProvider를 다시 만들려고하면 "잘못된 데이터"예외가 발생합니다.
... 코드가 명확해질 수 있습니다.
크립토 만들기 :
class Cryptograph
{
public Cryptograph()
{
this.RSAKeyInfo = new RSACryptoServiceProvider(2048, new CspParameters(1)).ExportParameters(true);
}
}
를 해독에 나중에 액세스 :
byte[] encrypted = ...;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(this.Cryptograph.RSAKeyInfo);
byte[] decrypted = rsa.Decrypt(encrypted, false);
Console.WriteLine(Utilities.ByteArrayToHexString(decrypted));
내가이 줄에서 "잘못된 데이터"예외가 :
byte[] decrypted = rsa.Decrypt(encrypted, false);
나는 무엇이다 잘못하고있는거야? 어떻게 제대로 할 수 있습니까? 감사합니다.
P .: MSDN 또는 확실한 Google 결과 링크를 보내지 마십시오.이 모든 페이지를 읽었지만 여전히 작동하지 않습니다.
클라이언트도 .net 클라이언트입니까? 동일한 버전의 .net을 사용하고 있습니까? –