AES(ECB) расшифровка текста - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, задача: Есть текст в виде HEX-строки ("4500002812B0400080066831C0A80196BC8A0126D4452774786CE0697BFEC6C350103FCD58C60000"). Есть ключ в виде HEX-строки ("45208F152B5BFA8082DB3B3C2C2DAAF00581FF6C") Мне нужно расшифровать этот текст. Желательно готовое решение, спасибо.

Решение задачи: «AES(ECB) расшифровка текста»

textual
Листинг программы
private static void Main()
{
    byte[] key = ConvertToBytes("45208F152B5BFA8082DB3B3C2C2DAAF0");
    byte[] text = Encoding.UTF8.GetBytes("Мне нужно расшифровать этот текст. Желательно готовое решение, спасибо.");
 
    using (var rijndael = new RijndaelManaged { Mode = CipherMode.ECB })
    {
        using (ICryptoTransform encryptor = rijndael.CreateEncryptor(key, null))
        using (ICryptoTransform decryptor = rijndael.CreateDecryptor(key, null))
        {
            byte[] encryptedText = encryptor.TransformFinalBlock(text, 0, text.Length);
            Console.WriteLine("Зашифрованный текст (hex):\n{0}", BitConverter.ToString(encryptedText));
            Console.WriteLine("\nЗашифрованный текст (utf-8):\n{0}", Encoding.UTF8.GetString(encryptedText));
 
            byte[] decryptedText = decryptor.TransformFinalBlock(encryptedText, 0, encryptedText.Length);
            Console.WriteLine("\nРасшифрованный текст:\n{0}", Encoding.UTF8.GetString(decryptedText));
        }
    }
}
 
public static byte[] ConvertToBytes(string hex)
{
    var bytes = new byte[hex.Length >> 1];
    for (int i = 0; i < bytes.Length; i++)
    {
        bytes[i] = Convert.ToByte(hex.Substring(i << 1, 2), 16);
    }
    return bytes;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5