Ich bin ziemlich neu bei all dieser Verschlüsselung Sache und ich versuche, eine einfache App zu tun, um eine bestimmte Zeichenfolge zu verschlüsseln. Hier ist mein Code:Verschlüsselung mit Zertifikat
public static X509Certificate2 getPublicKey()
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
X509Certificate2 cert2 = new X509Certificate2("c:\\certificate.cer");
return cert2;
}
public static string cipherRequest(byte[] stringToEncrypt)
{
X509Certificate2 certificate = getPublicKey();
RSACryptoServiceProvider rsa = certificate.PublicKey.Key as RSACryptoServiceProvider;
byte[] cryptedData = rsa.Encrypt(stringToEncrypt, true);
return Convert.ToBase64String(cryptedData);
}
public static void Main()
{
try
{
ASCIIEncoding ByteConverter = new ASCIIEncoding();
byte[] test = ByteConverter.GetBytes("stringtoencrypt");
string first = cipherRequest(test);
string second= cipherRequest(test);
Console.WriteLine("first: {0}", first);
Console.WriteLine("second: {0}", second);
}
catch(CryptographicException e)
{
Console.WriteLine(e.Message);
}
}
Also jedes Mal, wenn ich rufe Sie die cipherRequest
es unterschiedliche Ergebnisse. Ich habe überprüft, dass das Zertifikat geladen ist, aber es führt zu unterschiedlichen Ergebnissen.
Irgendwelche Gedanken?
Dieses Verhalten ist konstruktionsbedingt. Gibt es ein tatsächliches Problem? – SLaks
Warum haben Sie eine 'byte []' benannte Zeichenfolge? – SLaks