AesEncrypt:Aes加密/解密示例项目
В приложении «AesEncrypt.zip» находится исполняемый файл проекта, который можно скачать и запустить для просмотра.
Advanced Encryption Standard (AES) — это стандарт блочного шифрования, используемый правительством США. Он был разработан для замены устаревшего стандарта DES и широко применяется во всём мире. AES был опубликован Национальным институтом стандартов и технологий (NIST) в 2001 году как FIPS PUB 197 и стал официальным стандартом в 2002 году. На сегодняшний день AES является одним из самых популярных алгоритмов симметричного шифрования.
Теперь давайте рассмотрим, как использовать AES. Поскольку после шифрования данные представлены в виде массива байтов, который не совместим с обычными строками, здесь используется кодирование base64. Подробности см. в коде AesEncrypt\AesEncrypt.cs.
Чтобы наглядно увидеть процесс шифрования и дешифрования с помощью AES, рассмотрим несколько примеров:
Введите обычный текст в поле «Незашифрованный» и нажмите кнопку «Зашифровать». В поле «Зашифровано» вы увидите строку в формате base64, полученную после применения AES. Эту строку можно использовать в различных системах, например, для заполнения строки подключения к базе данных или сохранения данных.
После выполнения первого шага поле «Зашифровано» будет содержать строку в формате base64 после применения AES к исходному тексту. Чтобы увидеть результат, удалите текст из поля «Незашифрованный», а затем нажмите кнопку «Расшифровать». Вы увидите исходный текст.
После выполнения двух предыдущих шагов окно должно продемонстрировать работу примера. Для шифрования с использованием AES требуется два массива байтов: IV (инициализирующий вектор) и Key (ключ). IV имеет длину 16 байтов, а Key — 32 байта. В классе AesEncrypt\AesEncrypt.cs можно задать собственный ключ для шифрования и расшифровки в программе, как показано в следующем коде:
/// <summary>
/// Симметричный алгоритм ключа
/// </summary>
private readonly static byte[] aesKey = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 };
/// <summary>
/// Инициализирующий вектор для симметричного алгоритма
/// </summary>
private readonly static byte[] aesIV = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
Описанные шаги представляют собой основные способы использования AES в программе. У AES есть и другие возможности применения. Вот некоторые дополнительные примеры:
private void button1_Click(object sender, EventArgs e)
{
using (Aes myAes = Aes.Create())
{
AesEncryptExtension aes = new AesEncryptExtension();
textBox2.Text = aes.Encrypt(textBox1.Text, myAes.Key, myAes.IV);
textBox3.Text = Convert.ToBase64String(myAes.IV);
textBox4.Text = Convert.ToBase64String(myAes.Key);
}
Form3 form = new Form3();
form.Show();
}
После завершения первого шага откроется окно «Получаем зашифрованное сообщение». Заполните поля «Зашифрованное», «Вектор (IV)» и «Ключ (key)» данными из окна «Играем с расшифровкой». Это позволит получить незашифрованный текст.
Описанные действия позволяют вручную вводить зашифрованные данные, IV и ключ для получения исходного текста. Однако можно автоматизировать этот процесс, если обе системы используют одинаковые IV и key. В этом случае достаточно передать зашифрованный текст и значения IV и key между системами. Важно, чтобы обе системы использовали одинаковый алгоритм генерации динамических ключей.
Приведённый пример показывает, как можно использовать AES для шифрования данных. Можно провести аналогию, где IV и key называются ключом, алгоритм генерации IV и key — «ключевым механизмом», а номер, присвоенный каждому ключу при производстве — номером ключа. Сам AES можно сравнить с сейфом, в который помещаются зашифрованные данные. При транспортировке данных используются только номер ключа и сейф. Когда данные доставляются получателю, он использует номер ключа для создания ключа и открывает сейф, получая доступ к зашифрованным данным. Этот пример демонстрирует простой способ использования AES.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )