DevToolPal
RU

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

Шифрует и расшифровывает текст AES-GCM или AES-CBC с парольной фразой (PBKDF2) или hex-ключом, вывод в Base64.

Работает локально, без загрузки на сервер

Параметры

Режим
Алгоритм
Ключ
Длина ключа

Ввод

Символов: 0 · 0 B

Вывод

Символов: 0 · 0 B

Что делает инструмент

AES (Advanced Encryption Standard) — симметричный шифр, который используется почти везде: HTTPS, шифрование дисков, менеджеры паролей и мессенджеры. Один и тот же секретный ключ шифрует и расшифровывает. Инструмент превращает текст в Base64, который можно вставить куда угодно, и расшифровывает его обратно.

Можно использовать:

  • парольную фразу, которая превращается в 128- или 256-битный ключ через PBKDF2-HMAC-SHA256 со случайной солью, или
  • hex-ключ: 32 или 64 шестнадцатеричные цифры (128 или 256 бит), используемые напрямую. Кнопка Случайный ключ создаст новый.

Доступны два режима. AES-GCM — современный вариант по умолчанию, обнаруживающий подмену. AES-CBC с дополнением PKCS#7 — для совместимости со старыми системами.

Как пользоваться

  1. Выберите Зашифровать или Расшифровать, алгоритм и тип ключа.
  2. Введите парольную фразу или вставьте hex-ключ в верхней части поля ввода.
  3. Вставьте текст (или Base64 для расшифровки). Результат появится справа; Сделать вводом меняет направление, чтобы проверить обратное преобразование.

Формат вывода

Вывод — одна строка Base64, чтобы она не портилась в почте и мессенджерах:

passphrase:  salt (16 bytes) | IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)
hex key:     IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)

Для расшифровки нужны те же алгоритм, тип ключа, длина ключа и число итераций, что и при шифровании. Эти настройки хранятся в адресе страницы, поэтому ссылка передаёт их, а ключ остаётся у вас.

Как выбрать парольную фразу

PBKDF2 замедляет каждую попытку, но не спасёт короткую или распространённую фразу. Используйте длинную случайную фразу, например из генератора паролей, и передавайте её по другому каналу, чем шифротекст. Больше итераций усложняет подбор и немного замедляет расшифровку; обычно берут от 100 000 до 600 000.

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

› Что выбрать: GCM или CBC?

Выбирайте GCM, если другая система не требует CBC. GCM аутентифицирован: неверный ключ или один изменённый байт будут обнаружены, а не превратятся в мусор. CBC обеспечивает только конфиденциальность и нужен в основном для совместимости со старым кодом.

› Почему шифротекст каждый раз разный?

Каждое шифрование использует новый случайный IV, а с парольной фразой — ещё и новую случайную соль. Оба хранятся в начале вывода, поэтому расшифровка работает. Повторное использование IV с тем же ключом, особенно в GCM, было бы серьёзной уязвимостью.

› Как расшифровать вывод в своём коде?

Декодируйте Base64. С парольной фразой первые 16 байт — соль PBKDF2, затем IV (12 байт для GCM, 16 для CBC), затем шифротекст. Выведите ключ через PBKDF2-HMAC-SHA256 с тем же числом итераций. С hex-ключом соли нет. В GCM последние 16 байт — тег аутентификации.

› Сохраняется ли парольная фраза или ключ и отправляется ли куда-то?

Нет. Шифрование выполняется в браузере через Web Crypto API. Парольная фраза или ключ хранятся только в памяти этой страницы: они не сохраняются, не попадают в адресную строку и не включаются в ссылки для отправки, поэтому можно поделиться зашифрованным сообщением без ключа.