Мне нужно расшифровать сообщение, которое было зашифровано с использованием 3DES в режиме OFB.
У меня есть зашифрованное сообщение. У меня есть ключ. У меня есть IV.
Я на платформе .Net
Зашифрованное сообщение имеет длину 24 символа в base64.
Ключ длиной 24 символа в base64.
а IV - это 64-битное двоичное число.
Из-за отсутствия примеров я попытался использовать пример режима ECB, как показано ниже:
public static string DecryptTextFromMemory(byte[] Data, byte[] Key, byte[] IV)
{
try
{
// Create a new MemoryStream using the passed
// array of encrypted data.
MemoryStream msDecrypt = new MemoryStream(Data);
// Create a CryptoStream using the MemoryStream
// and the passed key and initialization vector (IV).
CryptoStream csDecrypt = new CryptoStream(msDecrypt,
new TripleDESCryptoServiceProvider().CreateDecryptor(Key, IV),
CryptoStreamMode.Read);
// Create buffer to hold the decrypted data.
byte[] fromEncrypt = new byte[Data.Length];
// Read the decrypted data out of the crypto stream
// and place it into the temporary buffer.
csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length);
//Convert the buffer into a string and return it.
return new ASCIIEncoding().GetString(fromEncrypt);
}
catch (CryptographicException e)
{
Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
return null;
}
}
Это ошибка, которую я получаю:
Произошла криптографическая ошибка: указанный ключ недопустим для этого алгоритма.
Я пробовал другие примеры кода, где я изменил алгоритм на OFB и он говорит, что он не поддерживается.
Может кто-нибудь помочь мне? Я явно не в курсе этих вещей, поэтому, пожалуйста, наберитесь терпения, если я что-то напутал.
Существует множество примеров дешифрования 3DES в режиме ECB, но мало или ничего я не могу найти в режиме OFB.