Я новичок в шифровании. Мне нужно реализовать асимметричный алгоритм шифрования, который, я думаю, использует частный/открытый ключ. Я начал использовать образец RSACryptoServiceProvider. это было нормально с небольшими данными для шифрования. Но при использовании его на относительно больших данных "2 строки", я получаю исключение CryptographicException "Bad Length"!
//Create a new instance of RSACryptoServiceProvider.
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
{
//Import the RSA Key information. This only needs
//toinclude the public key information.
//RSA.ImportParameters(RSAKeyInfo);
byte[] keyValue = Convert.FromBase64String(publicKey);
RSA.ImportCspBlob(keyValue);
//Encrypt the passed byte array and specify OAEP padding.
//OAEP padding is only available on Microsoft Windows XP or
//later.
encryptedData = RSA.Encrypt(DataToEncrypt, DoOAEPPadding);
}
Затем я нашел несколько примеров шифрования больших данных (или файлов) с помощью CryptoStream и использовал только симметричные алгоритмы, такие как DES или 3DES, которые имеют функцию CreateEncryptor, чтобы возвращать ICryptoTransform как один из входных данных для конструктора CryptoStream!!
CryptoStream cStream = new CryptoStream(fStream,
new TripleDESCryptoServiceProvider().CreateEncryptor(Key, IV),
CryptoStreamMode.Write);
Каким образом можно шифровать файлы с помощью RSA?