Sono abbastanza nuovo a tutta questa cosa di crittografia e sto provando a fare una semplice app per crittografare una determinata stringa. Ecco il mio codice:Crittografia con certificato
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);
}
}
Così, ogni volta che mi chiamano il cipherRequest
produce risultati diversi. Ho controllato che il certificato sia caricato ma produce risultati diversi.
Qualche idea?
Questo comportamento legato alla progettazione. C'è un problema reale? – SLaks
Perché hai una stringa di nome 'byte []'? – SLaks