Кажется, я не могу найти хороший чистый пример использования 128-битного шифрования AES.
У кого-нибудь есть образец кода?
c#
cryptography
aes
rijndaelmanaged
Дэн Эспарса
источник
источник
Ответы:
Если вы просто хотите использовать встроенный поставщик криптографии RijndaelManaged, ознакомьтесь со следующей статьей справки (в ней также есть простой пример кода):
И на всякий случай, если вам срочно понадобится образец, вот он во всей красе плагиата:
источник
using ()
Блок автоматически располагает объект myRijndael (и любой другой объект RijndaelManaged в этом примере). Возможно, ваш комментарий относился к более ранней версии ответа или ссылка показывала плохие примеры, но сегодня это не так.Недавно мне пришлось снова столкнуться с этим в моем собственном проекте - и я хотел поделиться несколько более простым кодом, который я использовал, поскольку этот вопрос и серия ответов продолжали появляться в моих поисках.
Я не собираюсь вдаваться в вопросы безопасности, связанные с частотой обновления таких вещей, как ваша соль и вектор инициализации - это тема для форума по безопасности, и есть несколько отличных ресурсов, на которые можно посмотреть. Это просто блок кода для реализации
AesManaged
на C #.Код очень прост в использовании. Для этого буквально требуется следующее:
По умолчанию реализация использует AesManaged, но на самом деле вы также можете вставить любой другой
SymmetricAlgorithm
. Список доступныхSymmetricAlgorithm
наследников для .NET 4.5 можно найти по адресу:http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.aspx
На момент публикации этого поста текущий список включает:
AesManaged
RijndaelManaged
DESCryptoServiceProvider
RC2CryptoServiceProvider
TripleDESCryptoServiceProvider
Для использования
RijndaelManaged
с приведенным выше кодом, например, вы должны использовать:Надеюсь, это кому-то поможет.
источник
The name 'GetBytes' does not exist in the current context
. Могу я спросить, какую версию .NET Framework вы используете?Взгляните на образец здесь ..
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged(v=VS.100).aspx#Y2262
Пример на MSDN не работает нормально (возникает ошибка) , потому что нет никакого начального значения из исходного вектора (IV) и ключа . Я добавляю 2-строчный код и теперь работаю нормально.
Подробнее см. Ниже:
источник
Используете AES или внедряете AES? Для использования AES существует класс System.Security.Cryptography.RijndaelManaged.
источник
Более полный пример, который выполняет получение ключа в дополнение к шифрованию AES, см. В ответе и ссылках, опубликованных в разделе « Получение шифрования AES для работы с Javascript и C #» .
ИЗМЕНИТЬ
примечание: криптография Javascript считается вредной. Стоит прочитать.
источник
источник
http://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt
источник
Попробуйте этот код, может быть, полезно.
1.Создайте новый проект C # и добавьте следующий код в форму Form1:
2. Создайте файл clsCrypto.cs, скопируйте его и вставьте в соответствии с кодом вашего класса и запустите его. Я использовал MD5 для создания исходного вектора (IV) и ключа AES.
источник
Вы можете использовать пароль из текстового поля, например, ключ ... С помощью этого кода вы можете зашифровать / расшифровать текст, изображение, текстовый документ, pdf ....
Преобразовать пароль из текстового поля в байтовый массив ...
источник
вот аккуратный и чистый код, чтобы понять алгоритм AES 256, реализованный в C #, вызовите функцию шифрования как
encryptedstring = cryptObj.Encrypt(username, "AGARAMUDHALA", "EZHUTHELLAM", "SHA1", 3, "@1B2c3D4e5F6g7H8", 256);
источник