С# Пример шифрования AES256 с использованием System.Security.Cryptography.Aes
Мне нужно реализовать шифрование/дешифрование AES 256, и я не смог найти пример, который работает правильно.
MSDN предполагает, что я должен использовать класс AES.
Класс Rijndael является предшественником алгоритма Aes. Вы должны использовать алгоритм Aes вместо Rijndael. Для получения дополнительной информации см. Запись Различия между Rijndael и AES в блоге .NET Security.
Может ли кто-нибудь указать мне в сторону хорошего примера, используя класс AES для AES256?
Чтобы добавить немного больше ясности:
У меня есть файл шифрования, который содержит общий ключ и строку зашифрованного текста. Мне нужно расшифровать текст, а затем проверить его.
Все примеры, которые я видел, ожидают по меньшей мере 2 параметра для выполнения шифрования/дешифрования.
Должен ли я иметь возможность вывести вектор инициализации и ключ из текста в файле шифрования?
Это пример текста, хранящегося в моем файле шифрования:
ÊÚḠ± Ìrá ƒ @† ²; Ä; öDWnªóª ©© ¨|L
Ответы
Ответ 1
Как только я обнаружил всю информацию о том, как мой клиент обрабатывал шифрование/дешифрование в конце, он был прямолинейным, используя AesManaged example предложено dtb.
Окончательно реализованный код запускается следующим образом:
try
{
// Create a new instance of the AesManaged class. This generates a new key and initialization vector (IV).
AesManaged myAes = new AesManaged();
// Override the cipher mode, key and IV
myAes.Mode = CipherMode.ECB;
myAes.IV = new byte[16] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // CRB mode uses an empty IV
myAes.Key = CipherKey; // Byte array representing the key
myAes.Padding = PaddingMode.None;
// Create a encryption object to perform the stream transform.
ICryptoTransform encryptor = myAes.CreateEncryptor();
// TODO: perform the encryption / decryption as required...
}
catch (Exception ex)
{
// TODO: Log the error
throw ex;
}
Ответ 2
Возможно, этот приведенный ниже пример здесь может помочь вам. Заявление автора
около 24 строк кода для шифрования, 23 для дешифрования