1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dongrizhixue-AesEncrypt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

AesEncrypt:Aes加密/解密示例项目

В приложении «AesEncrypt.zip» находится исполняемый файл проекта, который можно скачать и запустить для просмотра.

Advanced Encryption Standard (AES) — это стандарт блочного шифрования, используемый правительством США. Он был разработан для замены устаревшего стандарта DES и широко применяется во всём мире. AES был опубликован Национальным институтом стандартов и технологий (NIST) в 2001 году как FIPS PUB 197 и стал официальным стандартом в 2002 году. На сегодняшний день AES является одним из самых популярных алгоритмов симметричного шифрования.

Теперь давайте рассмотрим, как использовать AES. Поскольку после шифрования данные представлены в виде массива байтов, который не совместим с обычными строками, здесь используется кодирование base64. Подробности см. в коде AesEncrypt\AesEncrypt.cs.

Чтобы наглядно увидеть процесс шифрования и дешифрования с помощью AES, рассмотрим несколько примеров:

  1. Введите обычный текст в поле «Незашифрованный» и нажмите кнопку «Зашифровать». В поле «Зашифровано» вы увидите строку в формате base64, полученную после применения AES. Эту строку можно использовать в различных системах, например, для заполнения строки подключения к базе данных или сохранения данных.

  2. После выполнения первого шага поле «Зашифровано» будет содержать строку в формате base64 после применения AES к исходному тексту. Чтобы увидеть результат, удалите текст из поля «Незашифрованный», а затем нажмите кнопку «Расшифровать». Вы увидите исходный текст.

  3. После выполнения двух предыдущих шагов окно должно продемонстрировать работу примера. Для шифрования с использованием 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 есть и другие возможности применения. Вот некоторые дополнительные примеры:

  1. Нажмите кнопку «Отправить» в окне «Играем с расшифровкой», чтобы зашифровать текст из поля «Незашифрованный» с помощью AES и преобразовать его в формат base64. Затем заполните поля «Вектор (IV)» и «Ключ (Key)» случайными значениями IV и Key, полученными с помощью кода. Обратите внимание, что IV и Key представлены массивами байтов.
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();
}
  1. После завершения первого шага откроется окно «Получаем зашифрованное сообщение». Заполните поля «Зашифрованное», «Вектор (IV)» и «Ключ (key)» данными из окна «Играем с расшифровкой». Это позволит получить незашифрованный текст.

  2. Описанные действия позволяют вручную вводить зашифрованные данные, IV и ключ для получения исходного текста. Однако можно автоматизировать этот процесс, если обе системы используют одинаковые IV и key. В этом случае достаточно передать зашифрованный текст и значения IV и key между системами. Важно, чтобы обе системы использовали одинаковый алгоритм генерации динамических ключей.

Приведённый пример показывает, как можно использовать AES для шифрования данных. Можно провести аналогию, где IV и key называются ключом, алгоритм генерации IV и key — «ключевым механизмом», а номер, присвоенный каждому ключу при производстве — номером ключа. Сам AES можно сравнить с сейфом, в который помещаются зашифрованные данные. При транспортировке данных используются только номер ключа и сейф. Когда данные доставляются получателю, он использует номер ключа для создания ключа и открывает сейф, получая доступ к зашифрованным данным. Этот пример демонстрирует простой способ использования AES.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Класс шифрования/дешифрования AES. Развернуть Свернуть
C#
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dongrizhixue-AesEncrypt.git
git@api.gitlife.ru:oschina-mirror/dongrizhixue-AesEncrypt.git
oschina-mirror
dongrizhixue-AesEncrypt
dongrizhixue-AesEncrypt
gxr/1.0.0.0