Шифрование / расшифровка AES
Вставьте текст и парольную фразу, чтобы быстро зашифровать или расшифровать данные выбранным шифром PHP OpenSSL. AES, симметричный блочный шифр, стандартизированный NIST в FIPS 197 и используемый во многих системах TLS, WPA2, VPN и шифрования дисков, но эта страница, удобная утилита для текста низкого риска, а не аудированное хранилище секретов. Для чувствительных файлов или долгоживущих секретов используйте offline-инструмент вроде age, GnuPG или 7-Zip.
Как зашифровать текст с AES
-
1
Выберите шифр OpenSSL
Текущие варианты включают CBC, CTR и GCM. CBC и CTR не аутентифицированы, а этот инструмент не сохраняет и не проверяет тег аутентификации GCM.
-
2
Введите парольную фразу
Парольная фраза один раз хэшируется SHA-256, чтобы сформировать ключ AES. Здесь нет PBKDF2, соли, Argon2 или фактора стоимости, поэтому используйте длинную случайную фразу.
-
3
Вставьте текст низкого риска
Это серверная утилита PHP OpenSSL. Не вставляйте пароли, production-ключи, приватные документы или секреты, которые вы не готовы отправить этому сайту.
-
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.
На сервере сайта, когда действие запускает PHP OpenSSL. Это не инструмент Web Crypto, работающий только в браузере, поэтому не вставляйте ценные секреты, приватные ключи или чувствительные документы.
Результат Base64 содержит случайный IV, за которым идет сырой шифротекст. Padding CBC может добавить байты, а Base64 увеличивает бинарные данные примерно на треть. Сохраненный формат не содержит соль или тег аутентификации.
Этот инструмент работает только с текстом и лучше подходит для фрагментов низкого риска. Для файлов или важных секретов используйте аудированную offline-утилиту шифрования, например age, GnuPG или 7-Zip.
Сопутствующие инструменты
Генератор ключей PGP
Создайте пару ключей OpenPGP в текстовом формате ASCII и сертификат отзыва с Curve25519, RSA 2048 или RSA 4096.
Генератор ключей API случайного типа
Создавайте на сервере ключи API длиной 8–128 символов в формате hex, base64url или алфавитно-цифровом формате либо UUIDv4.
Генератор SSL-сертификатов
Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.
Генератор MD5
Создайте хеш MD5 для любого текста или файла. Результат, 128-битное значение в шестнадцатеричном формате, вычисляемое полностью в вашем браузере.
Шифр из числа в букву
Преобразуйте числа в буквы и обратно по шифру A=1, B=2 (A1Z26) для головоломок, загадок и подсказок в квест-комнатах.
Генератор JWT
Создавайте подписанные токены JWT с пользовательским заголовком, полями полезной нагрузки, подписью HMAC или RSA, а также ограничениями по сроку действия и аудитории для тестирования.
Инструмент доступен на других языках
- Cifrado / Descifrado AES [ES]
- Szyfrowanie i odszyfrowywanie AES [PL]
- เข้ารหัส / ถอดรหัส AES [TH]
- AES暗号化 / 復号 [JA]
- Mã hóa / giải mã AES [VI]
- Criptografar / Descriptografar AES [PT]
- AES kryptera / dekryptera [SV]
- Chiffrement / Déchiffrement AES [FR]
- AES 암호화 / 복호화 [KO]
- تشفير / فك تشفير AES [AR]
- AES Verschlüsseln / Entschlüsseln [DE]
- Enkripsi / Dekripsi AES [ID]
- AES versleutelen / ontsleutelen [NL]
- AES Encrypt / Decrypt [EN]
- AES Crittografia / Decrittografia [IT]
- AES Şifrele / Şifre Çöz [TR]
- AES 加密 / 解密 [ZH]