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

Вставьте текст и парольную фразу, чтобы быстро зашифровать или расшифровать данные выбранным шифром PHP OpenSSL. AES — симметричный блочный шифр, стандартизированный NIST в FIPS 197 и используемый во многих системах TLS, WPA2, VPN и шифрования дисков, но эта страница — удобная утилита для текста низкого риска, а не аудированное хранилище секретов. Для чувствительных файлов или долгоживущих секретов используйте offline-инструмент вроде age, GnuPG или 7-Zip.

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

  1. 1

    Выберите шифр OpenSSL

    Текущие варианты включают CBC, CTR и GCM. CBC и CTR не аутентифицированы, а этот инструмент не сохраняет и не проверяет тег аутентификации GCM.

  2. 2

    Введите парольную фразу

    Парольная фраза один раз хэшируется SHA-256, чтобы сформировать ключ AES. Здесь нет PBKDF2, соли, Argon2 или фактора стоимости, поэтому используйте длинную случайную фразу.

  3. 3

    Вставьте текст низкого риска

    Это серверная утилита Livewire/PHP OpenSSL. Не вставляйте пароли, production-ключи, приватные документы или секреты, которые вы не готовы отправить этому сайту.

  4. 4

    Скопируйте результат Base64

    При шифровании создается случайный IV, добавляется перед сырым шифротекстом, а затем объединенные байты кодируются в Base64. Для расшифровки нужны тот же шифр и та же парольная фраза.

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

Эта реализация использует PHP OpenSSL. При шифровании она хэширует парольную фразу SHA-256, создает случайный IV нужной для выбранного шифра длины, шифрует текст и возвращает:

Base64(IV || шифротекст)

Вывод не содержит соль, параметры PBKDF2, HMAC или тег аутентификации GCM. Он несовместим с форматами Web Crypto, age, GnuPG, рецептами OpenSSL из командной строки или 7-Zip.

Варианты AES в контексте

У AES фиксированный размер блока 128 бит (16 байт) и стандартные размеры ключа 128, 192 и 256 бит. Важная разница безопасности здесь не только в размере ключа, но и в том, аутентифицировано ли зашифрованное сообщение.

Вариант шифра Что важно знать в этом инструменте
AES-128-CBC / AES-192-CBC / AES-256-CBC Распространенный блочный режим со случайным IV и padding PKCS#7. Для обнаружения подмены нужен отдельный MAC, например HMAC-SHA-256.
AES-256-CTR Превращает AES в потокоподобный режим. Также требует отдельной аутентификации, и тот же IV/счетчик нельзя повторно использовать с тем же ключом.
AES-128-GCM / AES-256-GCM GCM обычно является режимом AEAD, но только когда тег аутентификации сохранен и проверяется. Вывод этого инструмента не содержит такой тег, поэтому не полагайтесь на него как на аутентифицированное шифрование.

Напоминания по безопасности

Рекомендации OWASP по криптографическому хранению советуют использовать аутентифицированное шифрование, где это возможно, или шифрование с отдельным MAC. Учитывайте это при работе с этой утилитой:

  • Это симметричное шифрование - та же парольная фраза расшифровывает. Передавайте ее по другому каналу, отдельно от шифротекста.
  • Слабая парольная фраза здесь дает слабый ключ - SHA-256 быстрый и без соли, поэтому злоумышленник может быстро проверять догадки, если получит вывод.
  • CBC и CTR требуют аутентификации - без HMAC или другого MAC злоумышленник иногда может изменить шифротекст без обнаружения.
  • Не используйте IV или nonce повторно с тем же ключом - инструмент создает новый случайный IV при шифровании, но вставленные внешние данные должны соблюдать то же правило.
  • Для настоящих секретов используйте аудированные инструменты - age, GnuPG и 7-Zip аккуратнее работают с форматами файлов, метаданными и аутентификацией.

Часто задаваемые вопросы

Текущий компонент хэширует парольную фразу SHA-256 и использует полученные байты как материал ключа для OpenSSL. Он не использует PBKDF2, соль, scrypt или Argon2, поэтому короткая или повторно используемая фраза рискованна.

Нет. CBC и CTR требуют отдельный MAC, например HMAC-SHA-256. Хотя GCM обычно дает AEAD-аутентификацию, этот инструмент не сохраняет и не проверяет тег GCM в выводе Base64.

На сервере сайта, когда действие Livewire запускает PHP OpenSSL. Это не инструмент Web Crypto, работающий только в браузере, поэтому не вставляйте ценные секреты, приватные ключи или чувствительные документы.

Результат Base64 содержит случайный IV, за которым идет сырой шифротекст. Padding CBC может добавить байты, а Base64 увеличивает бинарные данные примерно на треть. Сохраненный формат не содержит соль или тег аутентификации.

Этот инструмент работает только с текстом и лучше подходит для фрагментов низкого риска. Для файлов или важных секретов используйте аудированную offline-утилиту шифрования, например age, GnuPG или 7-Zip.

Сопутствующие инструменты

Кодировщик шифра A1Z26

Кодируйте текст шифром A1Z26 (A=1, B=2, ... Z=26) или декодируйте числовую последовательность обратно в буквы, выбрав разделитель.

Кодировщик шифра Атбаш

Кодируйте или декодируйте текст шифром Атбаш, еврейской заменой, где A-Z отображается в Z-A. Одна и та же операция шифрует и расшифровывает.

Счётчик слов

Подсчитайте слова, символы, предложения и абзацы с учётом времени чтения, времени произнесения вслух, плотности ключевых слов и оценки удобочитаемости по Флешу — для эссе, постов, подписей и meta-описаний.

Калькулятор прогноза роста взрослого

Оцените будущий рост ребенка по росту родителей и текущему возрасту с помощью mid-parental formula и типичных диапазонов точности.

Калькулятор нумерологии

Рассчитайте нумерологические числа имени по пифагорейским или халдейским значениям букв: выражение, стремление души и личность.

Калькулятор возраста собаки

Переведите возраст собаки в человеческие годы по современным ветеринарным данным. Маленькие, средние, крупные и гигантские собаки стареют с разной скоростью.