Toolonit
  1. Главная
  2. Шифрование
  3. Шифрование / расшифровка
  4. AES

Шифрование и расшифровка AES

Шифрует и расшифровывает текст алгоритмом AES-128, 192 или 256: режимы GCM, CBC, CTR и другие.

Зашифровать с помощью

Он понадобится для расшифровки. Ничего из введённого не покидает эту страницу.

Итерации PBKDF2

По умолчанию в OpenSSL — 10 000. Подойдёт любое число: чем больше, тем медленнее подбирать пароль; для расшифровки нужно то же число.

Режим

Обычный выбор для OpenSSL. Нужен IV; дополняет до целых блоков.

Размер ключа
Формат вывода
То же в OpenSSL
openssl enc -aes-256-cbc -pbkdf2 -iter 10000 -a -A

OpenSSL запросит пароль; вставьте в него текст или добавьте файлы -in и -out.

Зашифруйте текст алгоритмом AES-256 (или AES-128 и AES-192) с паролем либо своими ключом и IV — или вставьте шифротекст AES в Base64 или hex, чтобы его расшифровать. С паролем результат имеет тот же формат, что и у openssl enc -pbkdf2: заголовок Salted__, случайная 8-байтовая соль и шифротекст, а ключ и IV выводятся через PBKDF2-HMAC-SHA256. Настройки по умолчанию — AES-256 в режиме CBC с дополнением PKCS#7 и выводом в Base64 — совпадают с openssl enc -aes-256-cbc -pbkdf2 -a, а GCM, CTR, CFB, OFB и ECB выбираются одним щелчком. Результат обновляется прямо во время ввода. Всё происходит в браузере, поэтому текст, пароль и ключ не покидают ваше устройство; это бесплатно и без регистрации.

Как зашифровать и расшифровать текст AES

  1. Выберите «Зашифровать» или «Расшифровать». Введите текст для шифрования или вставьте текст в Base64 или hex для расшифровки — формат определяется автоматически.
  2. Введите пароль (кнопка «Сгенерировать» создаст надёжный) или переключитесь на «Ключ и IV (hex)» и введите либо сгенерируйте ключ и IV указанной длины.
  3. Выберите размер ключа (128, 192 или 256 бит) и режим. Для расшифровки нужны те же пароль, число итераций, размер ключа и режим, что и при шифровании.
  4. Скопируйте или скачайте результат либо нажмите «Поменять местами», чтобы перенести его в поле ввода и сменить направление. В блоке «То же в OpenSSL» показана соответствующая команда openssl — без вашего пароля.

Возможности

  • AES-128, AES-192 и AES-256 в режимах CBC, GCM, CTR, CFB, OFB или ECB
  • Режим пароля в формате openssl enc -pbkdf2: заголовок Salted__, случайная 8-байтовая соль, ключ и IV из PBKDF2-HMAC-SHA256
  • 10 000 (по умолчанию в OpenSSL), 100 000 или 600 000 итераций PBKDF2 либо любое число до 10 миллионов
  • Режим «Ключ и IV» со своими ключом и IV в hex или со случайными — по кнопке «Сгенерировать»
  • AES-GCM обнаруживает неверный пароль или ключ и любое изменение шифротекста
  • Дополнение PKCS#7 или без дополнения в CBC и ECB
  • Вывод в Base64 или hex; ввод в Base64 или hex распознаётся автоматически
  • Подходящая команда openssl enc для всех режимов, кроме GCM

Это конфиденциально?

Да. AES работает на WebAssembly внутри браузера, а ключ из пароля получает встроенный в браузер Web Crypto. Текст, пароль и ключ никуда не загружаются и не сохраняются, а показанная на странице команда openssl никогда их не содержит.

Частые вопросы

Какой режим AES выбрать?

Для новых данных — GCM: помимо шифрования он обнаруживает любое изменение текста и неверный пароль. CBC, режим по умолчанию, выбирайте, когда другая сторона использует openssl enc, который не умеет читать GCM; CTR, CFB или OFB — только для совместимости с уже существующей системой. Избегайте ECB: одинаковые 16-байтовые блоки дают одинаковый результат, и структура текста проступает в шифротексте.

Можно ли расшифровать результат в OpenSSL?

Да, кроме GCM. С настройками по умолчанию: echo 'U2FsdGVkX1…' | openssl enc -d -aes-256-cbc -pbkdf2 -iter 10000 -a -A — затем OpenSSL запросит пароль. Замените 256 и cbc на свой размер ключа и режим (ecb, ctr, cfb, ofb), значение -iter — на своё число итераций и добавьте -nopad, если отключили дополнение; для вывода в hex уберите -a -A и сначала пропустите текст через xxd -r -p. В режиме «Ключ и IV» вместо -pbkdf2 -iter укажите -K <ключ в hex> -iv <IV в hex>. openssl enc отказывается работать с GCM (шифры AEAD не поддерживаются), поэтому текст в GCM можно прочитать только здесь или в коде.

Почему результат каждый раз разный?

Потому что при каждом шифровании с паролем выбирается новая случайная соль, и ключ, IV и весь результат каждый раз меняются — а расшифровывается любой вариант в один и тот же текст. Так задумано: никто не сможет понять, что два сообщения одинаковы. В режиме «Ключ и IV» результат повторяется, если повторяются ключ и IV, поэтому генерируйте новый IV для каждого сообщения: повтор IV с тем же ключом ослабляет CBC и полностью ломает CTR и GCM.

Почему пишет, что пароль неверный?

Потому что что-то не совпадает: пароль, число итераций, размер ключа, режим и дополнение должны быть теми же, что при шифровании, а в тексте хранится только соль. Текст, который начинается с U2FsdGVkX1, но создан openssl enc без -pbkdf2 или библиотекой CryptoJS с парольной фразой, использует старый способ получения ключа (EVP_BytesToKey), который эта страница не читает: зашифруйте его заново с -pbkdf2 или воспользуйтесь режимом «Ключ и IV», если у вас есть сами ключ и IV.

Надёжно ли шифрование AES-256?

Да. Практических атак на AES нет ни при каком размере ключа; слабое место — пароль. Используйте длинный случайный пароль (его создаёт кнопка «Сгенерировать») и, если обе стороны под вашим контролем, увеличьте число итераций до 600 000 — это текущая рекомендация OWASP для PBKDF2-HMAC-SHA256. Выбирайте GCM, если нужно ещё и убедиться, что текст не изменён.

Похожие инструменты