Я пытаюсь зашифровать некоторые данные с помощью следующего кода:
public static byte[] EncryptString(byte[] input, string password)
{
PasswordDeriveBytes pderiver = new PasswordDeriveBytes(password, null);
byte[] ivZeros = new byte[8];
byte[] pbeKey = pderiver.CryptDeriveKey("RC2", "MD5", 128, ivZeros);
RC2CryptoServiceProvider RC2 = new RC2CryptoServiceProvider();
byte[] IV = new byte[8];
ICryptoTransform encryptor = RC2.CreateEncryptor(pbeKey, IV);
MemoryStream msEncrypt = new MemoryStream();
CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);
csEncrypt.Write(input, 0, input.Length);
csEncrypt.FlushFinalBlock();
return msEncrypt.ToArray();
}
Однако, когда он достигает инициализации моего объекта CryptoStream, он выдает следующую ошибку:
«Поток не поддерживает поиск».
Для пояснения, в приведенном выше коде нет обработки ошибок, поэтому, если вы просто запустите эту команду, то, конечно, не сломаетесь. Но, шагая по коду, объект CryptoStream покажет эту ошибку в своих свойствах после инициализации.
Почему это? И как мне этого избежать?