У меня возникли проблемы с поиском хорошего примера в строках шифрования/дешифрования в C# с использованием сертификата. Я смог найти и реализовать пример подписи и проверки подписи, как показано ниже. Может ли кто-нибудь указать мне на простой, похожий пример для шифрования?Шифрование/Расшифровка на C# с использованием сертификата
private static string Sign(RSACryptoServiceProvider privateKey, string content)
{
SHA1Managed sha1 = new SHA1Managed();
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] data = encoding.GetBytes(content);
byte[] hash = sha1.ComputeHash(data);
// Sign the hash
var signature = privateKey.SignHash(hash, CryptoConfig.MapNameToOID("SHA1"));
return Convert.ToBase64String(signature);
}
public static bool Verify(RSACryptoServiceProvider publicKey, string content, string hashString)
{
SHA1Managed sha1 = new SHA1Managed();
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] data = encoding.GetBytes(content);
byte[] hash = sha1.ComputeHash(data);
return publicKey.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA1"), Convert.FromBase64String(hashString));
}
Вы спрашиваете, как загрузить сертификат для использования с RSA или у вас есть RSACryptoServiceProvider, уже загруженный ключом из сертификата? –
Вы видели это [связанное сообщение] (http://stackoverflow.com/questions/202011/encrypt-and-decrypt-a-string/10366194#10366194)? –
Обратите внимание, что вы бы/могли использовать RSA только для шифрования небольших объемов данных, а не для произвольной длины текста. –