Я пытаюсь шифровать TripleDES в режиме ECB. Мой код выглядит так:
public static string EncryptDES(string InputText)
{
byte[] key = new byte[] { 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48 };
byte[] clearData = System.Text.Encoding.UTF8.GetBytes(InputText);
MemoryStream ms = new MemoryStream();
TripleDES alg = TripleDES.Create();
alg.Key = key;
alg.Mode = CipherMode.ECB;
CryptoStream cs = new CryptoStream(ms, alg.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(clearData, 0, clearData.Length);
cs.FlushFinalBlock();
byte[] CipherBytes = ms.ToArray();
ms.Close();
cs.Close();
string EncryptedData = Convert.ToBase64String(CipherBytes);
return EncryptedData;
}
Когда я запускаю тест, я получаю исключение, что «Длина данных для расшифровки недопустима».
Кто-нибудь знает, что я делаю не так?
Заранее спасибо.
Обновление
Мой плохой!
Я нашел свою проблему
Вместо alg.CreateEncryptor()
я использовал alg.CreateDecyptor()
.
Проблема копирования и вставки. (
Спасибо за помощь, ребята