Шифрование и расшифровка SM4
Шифрует и расшифровывает текст алгоритмом SM4 — национальным стандартом Китая.
Он понадобится для расшифровки. Ничего из введённого не покидает эту страницу.
По умолчанию в OpenSSL — 10 000. Подойдёт любое число: чем больше, тем медленнее подбирать пароль; для расшифровки нужно то же число.
Обычный выбор для OpenSSL. Нужен IV; дополняет до целых блоков.
openssl enc -sm4-cbc -pbkdf2 -iter 10000 -a -AOpenSSL запросит пароль; вставьте в него текст или добавьте файлы -in и -out.
SM4, ранее SMS4, — национальный стандарт блочного шифрования Китая (GB/T 32907-2016) с ключом 128 бит и 16-байтовыми блоками; с 2021 года он также входит в ISO/IEC 18033-3. Системы, которые следуют китайским правилам коммерческой криптографии, используют его там, где другие использовали бы AES, например в банковских и государственных системах. Шифруйте и расшифровывайте здесь текст SM4 в режиме CBC по умолчанию или в ECB, CTR, CFB и OFB — паролем в формате openssl enc -pbkdf2 или своими 32-значными ключом и IV в hex. SM4 работает в браузере, поэтому текст и ключ не покидают ваше устройство; бесплатно и без регистрации.
Как зашифровать и расшифровать текст SM4
- Выберите «Зашифровать» или «Расшифровать». Введите текст для шифрования или вставьте текст в Base64 или hex для расшифровки — формат определяется автоматически.
- Введите пароль (кнопка «Сгенерировать» создаст надёжный) или переключитесь на «Ключ и IV (hex)» и введите либо сгенерируйте 32-значные ключ и IV (в ECB IV нет).
- Выберите режим — CBC, если данные не создавались в другом. Включайте «Без дополнения», только если данные шифровались без дополнения PKCS#7.
- Скопируйте или скачайте результат. В блоке «То же в OpenSSL» показана команда openssl, которая делает то же самое, — без вашего пароля.
Возможности
- SM4 (GB/T 32907-2016) с ключом 128 бит
- Режимы CBC, ECB, CTR, CFB и OFB; дополнение PKCS#7 или без дополнения
- Режим пароля в формате openssl enc -pbkdf2, который читает openssl enc -sm4-cbc
- Подходящая команда openssl для каждого режима
- Режим «Ключ и IV» с 32-значными ключом и IV в hex — введёнными вручную или сгенерированными
- Base64 или hex на входе и выходе; результат можно скопировать, скачать или поменять местами с вводом
Это конфиденциально?
Да. SM4 работает на WebAssembly внутри браузера, а пароль усиливается встроенным в браузер Web Crypto; текст, пароль и ключ никуда не загружаются и не сохраняются.
Частые вопросы
Надёжен ли SM4?
Да. Практических атак на полный 32-раундовый SM4 неизвестно, а его 128-битный ключ даёт примерно ту же стойкость, что и AES-128. Как и у любого шифра здесь, слабое место — пароль: используйте длинный случайный.
Можно ли расшифровать это в OpenSSL?
Да, в OpenSSL 3: echo 'U2FsdGVkX1…' | openssl enc -d -sm4-cbc -pbkdf2 -iter 10000 -a -A (затем OpenSSL запросит пароль). Для других режимов используйте -sm4-ecb, -sm4-ctr, -sm4-cfb или -sm4-ofb, а в режиме «Ключ и IV» — -K <32 цифры hex> -iv <32 цифры hex> вместо -pbkdf2 -iter. Если ваш openssl не принимает sm4-cbc, он собран без SM4.
Поддерживается ли SM4-GCM?
Нет. SM4 доступен в режимах CBC, ECB, CTR, CFB и OFB — тех, что есть в openssl enc; ни один из них не обнаруживает изменений текста. GCM есть на странице AES.
А SM2 или SM3 здесь есть?
Нет. SM2 — алгоритм с открытым ключом, а SM3 — хеш-функция; эта страница выполняет только симметричное шифрование SM4. Для хешей есть инструмент «Генератор хешей» с MD5 и семейством SHA, но без SM3.