Skip to content

Инструмент шифрования и дешифрования DES / 3DES

Шифрование/расшифровка DES/3DES (2/3 ключа) в режимах ECB/CBC с PKCS#7 в браузере. Длина ключей (8/16/24 байта) проверяется строго — без тихого усечения. К каждому результату — команда OpenSSL.

Без отслеживания Работает в браузере Бесплатно
Шифрование выполняется полностью в вашем браузере — ключ и введённые данные никогда не покидают это устройство.

Шифротекст
Эквивалентная команда OpenSSL
—

Команда содержит введённый вами ключ.

Тестовый вектор DES из FIPS 81

Вычисляется во время сборки тем же движком, на котором работает эта страница, — сверьте с ним свою реализацию DES.
Ключ (одиночный DES) 0123456789abcdef
Открытый текст 4e6f772069732074
Шифротекст (ECB, без паддинга) 3fa40e8a984d4815
Движок DES/3DES проверяет вектор FIPS 81 и был сверён с OpenSSL 3 (des-ede / des-ede3, с проверкой одиночного DES через эквивалентность K‖K‖K) на 3 000+ случайных комбинациях в ECB и CBC; эквивалентные команды OpenSSL были выполнены в реальном shell для сравнения. Настройки библиотек по умолчанию подтверждены их запуском и чтением исходников; см. раздел альтернатив. — Go Tools Security Team · Sep 28, 2026

Написано и проверено разработчиками, которые строят криптографические инструменты. Каждый шифротекст и количество байт на этой странице вычислены движком инструмента и закреплены тестами.

Краткие ответы о DES

Длина ключа DES

8 / 16 / 24 байта Одиночный DES: 8 байт (56 эффективных бит). 3DES: 16 байт (2 ключа) или 24 байта (3 ключа). Номинальный материал ключа 112/168 бит; эффективная стойкость по NIST около 80/112 бит (SP 800-57). Инструмент распознаёт по количеству байт; другие длины вызывают ошибку.

Тестовый вектор FIPS 81

3fa40e8a984d4815 Ключ 0123456789abcdef, открытый текст "Now is t" (hex 4e6f772069732074): одиночный DES ECB без паддинга выдаёт 3fa40e8a984d4815.

Какой длины IV у DES

8 байт 8 байт (16 hex-цифр), только для CBC — в ECB не используется. Отличается от 16-байтового IV у AES.

Что такое Java PKCS5Padding

= PKCS#7 Для DES это PKCS#7 — тот же алгоритм паддинга под историческим названием (PKCS#5 определял только 8-байтовые блоки, как раз блок DES).

Безопасен ли DES сегодня

Только legacy-совместимость Нет. Одиночный DES выведен из эксплуатации в 2005; 3DES объявлен устаревшим в SP 800-131A Rev.2 (2023). Только совместимость с legacy — для нового используйте AES-256.

Что такое DES и 3DES (Data Encryption Standard)?

DES (Data Encryption Standard) — симметричный блочный шифр, принятый американским органом стандартизации в 1977 году на основе дизайна IBM Lucifer . Он обрабатывает 64-битные (8-байтовые) блоки с номинально 64-битным ключом в 56 эффективных бит через 16 раундов структуры Фейстеля.

3DES (TDEA, Triple DES) прогоняет DES три раза, чтобы компенсировать короткий ключ: C = E_K3(D_K2(E_K1(P))). Средний проход — дешифрование, поэтому при K1=K2=K3 цепочка вырождается в одиночный DES — сознательный выбор ради обратной совместимости. 2-ключевой вариант (K3=K1) имеет около 112 эффективных бит и является самой распространённой формой в legacy-банковских системах.

NIST отозвал одиночный DES в 2005 году (уведомление FIPS 46-3) и объявил 3DES устаревшим в SP 800-131A Rev.2 (2023). Единственная причина, по которой они всё ещё существуют, — совместимость с legacy: банковские клиринги, платёжные шлюзы и системы на Java/.NET/PHP из 90-х и 2000-х до сих пор гоняют криптографию эпохи DES. Новые разработки должны использовать AES-256.

# OpenSSL single DES (legacy provider)
openssl enc -des-ecb -provider legacy -provider default -K 0123456789abcdef -nopad

# 3-key 3DES CBC + PKCS#7 (default provider)
openssl enc -des-ede3-cbc -K <48 hex digits> -iv <16 hex digits> -base64 -A

Что умеет этот инструмент DES

Строгая проверка всех трёх длин ключа

8/16/24 байта автоматически распознаются как одиночный DES / 2-ключевой / 3-ключевой 3DES; любая другая длина вызывает ошибку. В отличие от молчаливого усечения в CryptoJS или усечения с предупреждением в openssl enc -K, неверные ключи падают громко — а именно расхождения ключей чаще всего ломают совместимость.

Вектор FIPS 81 вычисляется во время сборки

Таблица тестовых векторов внизу выводится тем же движком во время сборки, поэтому краулеры видят эталонное значение без выполнения JS, а напечатанное число никогда не разойдётся с интерактивным.

Эквивалентная команда OpenSSL

Каждая комбинация параметров отображается в команду openssl enc, воспроизводящую результат на OpenSSL 3, включая флаги legacy-провайдера для одиночного DES. Отправьте её другой стороне, чтобы зафиксировать расхождение параметров.

Поддержка открытого текста в GBK

Java getBytes() эпохи DES на китайском Windows-JDK выдаёт GBK. Оба направления здесь принимают GBK, поэтому китайский текст из старых систем не требует предварительного преобразования.

Полностью в браузере

Чистый TypeScript, ноль зависимостей, ноль сетевых запросов. Ключи и открытый текст никогда не покидают устройство; после загрузки работает офлайн. Единственно приемлемая форма для инструмента, работающего с ключами.

Настройки DES-библиотек по умолчанию в разных языках

Java (JCE)

"DES" — по умолчанию ECB + PKCS5Padding

Cipher.getInstance("DES") равнозначно DES/ECB/PKCS5Padding; "DESede" — это 3DES, но принимает только 24-байтовые ключи — для 2 ключей разверните K1‖K2 в K1‖K2‖K1. PKCS5Padding — это PKCS#7 для DES. Без IV: при шифровании выбирается случайный (получить через getIV()), при дешифровании — ошибка "Parameters missing".

PHP (openssl_encrypt)

des-ede3-cbc / des-ede-cbc

Названия алгоритмов следуют OpenSSL: des-ede3 — тройной ECB, des-ede3-cbc — CBC. $options=0 (по умолчанию) выводит текст Base64; OPENSSL_RAW_DATA — сырые байты. Короткие ключи молча дополняются нулями; пустой IV сначала предупреждает, а затем шифрует с нулевым IV.

OpenSSL 3 (openssl enc)

-des-ede3-cbc работает по умолчанию

Одиночному DES нужны -provider legacy -provider default (в некоторых сборках legacy отсутствует полностью). -K/-iv принимают hex; по умолчанию PKCS#7, -nopad отключает. -K усекает слишком длинные ключи с предупреждением.

CryptoJS

Молча усекает недопустимые длины ключа

Сырой ключ из 8 байт (WordArray) работает; неверные длины молча дополняются нулями или усекаются (4 байта дополняются, 10 усекаются — без ошибки). Строковый "ключ" запускает выведение ключа (MD5 + случайная соль, вывод с префиксом Salted__, каждый раз разный). CBC без IV — краш TypeError, а не нулевой IV. TripleDES с 8-байтовым ключом молча становится одиночным DES.

.NET

TripleDES — по умолчанию CBC + PKCS7

TripleDESCryptoServiceProvider: Mode=CBC, Padding=PKCS7, ключ 16 или 24 байта (DES — 8). .NET отклоняет слабые ключи (чётность сначала нормализуется, затем идёт сверка с таблицей слабых ключей — нулевой ключ бросает исключение), тогда как все остальные библиотеки их принимают. Учтите при миграции.

Go (crypto/des)

Режим подключается явно

des.NewCipher даёт сырой блочный интерфейс с 8-байтовым ключом; оборачивать в cipher.NewCBCEncrypter и т. п. нужно самому. 3DES — des.NewTripleDESCipher (24 байта). Длина IV проверяется строже, чем в большинстве языков.

Примеры шифрования DES

Тестовый вектор FIPS 81 (одиночный DES, ECB, без паддинга)

Ключ 0123456789abcdef, открытый текст (hex) 4e6f772069732074
3fa40e8a984d4815

Открытый текст — ASCII-строка "Now is t". Это классический вектор FIPS 81, а таблица внизу страницы вычисляется во время сборки тем же движком — если ваша реализация DES не выдаёт это значение на этих входных данных, в ней есть ошибка.

2-ключевой 3DES + CBC + PKCS#7: открытый текст UTF-8 в Base64

Ключ 0123456789abcdeffedcba9876543210 (16 байт), IV fedcba9876543210, открытый текст: DES-тест совместимости: заказ 20260927-0042
fD4pHEL4z8SaSWOwaI+CjgMbikBtt6KRGt3G6qYpQnGqBHCLMAg/YznPEqDi5OkqqVDkM25ntVBmnrn8fG7NUdjTc6er1yFG

Ключ из 16 байт трактуется как 2-ключевой 3DES (K1 = первые 8 байт, K2 = последние 8, K3 = K1 — сборка EDE2). PKCS#7 на 8-байтовом блоке — это ровно то, что Java называет "PKCS5Padding" для DES: та же схема, отличается только размер блока.

3-ключевой 3DES + CBC + PKCS#7

Ключ 0123456789abcdef23456789abcdef010456789abcdef012 (24 байта), IV fedcba9876543210, открытый текст: hello des
DhDQX9sfxKOirZ8eyqT7Jg==

Ключ из 24 байт — это полный трёхключевой EDE3: C = E_K3(D_K2(E_K1(P))). Из трёх длин ключа только эта форма не имеет вырожденного эквивалента — и 2-ключевой вариант, и K1=K2=K3 вырождаются в более слабые шифры.

Как пользоваться инструментом шифрования/дешифрования DES

  1. 1

    Выберите режим и паддинг

    Для Java DES/ECB/PKCS5Padding выберите ECB + PKCS#7; для openssl enc -des-ede3-cbc — CBC + PKCS#7. Старый код на mcrypt в PHP обычно использует нулевой паддинг.

  2. 2

    Введите ключ (8/16/24 байта)

    Количество байт выбирает шифр: 8 = одиночный DES, 16 = 2-ключевой 3DES, 24 = 3-ключевой 3DES. Выберите Hex, Текст или Base64; бейдж показывает реальное количество байт и определённый вариант. Неверные длины вызывают ошибку — ничего не усекается.

  3. 3

    Для CBC введите 8-байтовый IV

    Для ECB IV не нужен. IV должен быть ровно 8 байт — 16 hex-цифр, а не 32, как у AES. Кнопка «Случайный» генерирует свежий.

  4. 4

    Вставьте данные и получите результат в реальном времени

    Шифрование: введите текст (UTF-8/GBK) или hex. Дешифрование: вставьте шифротекст в Base64 или hex. Результаты обновляются по мере ввода, с копированием в один клик и проверкой туда-обратно кнопкой «Расшифровать этот шифротекст».

  5. 5

    Передайте эквивалентную команду OpenSSL другой стороне

    Раскрывающаяся панель даёт команду openssl enc, воспроизводящую текущий результат (с ключом; команды для одиночного DES содержат -provider legacy -provider default). Отправьте её тому, с кем вы обеспечиваете совместимость, — это самый быстрый способ выяснить, чей параметр неверен.

Почему дешифрование DES не удаётся

Длина ключа не 8/16/24

"DES-ключ" из 32 hex-символов — это 16 байт, то есть 2-ключевой 3DES, а не одиночный DES. И наоборот: 24-байтовый ключ на системе только под 2 ключа тоже не сработает.

✗ Неверно
Ключ 0123456789abcdeffedcba9876543210 (16 байт) при выбранном одиночном DES → ошибка "ключ должен быть ровно 8 байт"
✓ Верно
Тот же ключ как 16 байт (2-ключевой 3DES) → чистая расшифровка

Путаница названий PKCS5 и PKCS7

Java называет "PKCS5Padding" для DES, но исполняет алгоритм PKCS#7 (PKCS#5 когда-то определял паддинг только для 8-байтовых блоков, совпадающих с блоком DES, поэтому имя и прижилось). Выбор None или Zero против шифротекста JCE всегда падает.

✗ Неверно
Шифротекст JCE `DES/ECB/PKCS5Padding`, дешифрованный как "без паддинга" → мусор в конце или ошибка неверного паддинга
✓ Верно
Выбрать PKCS#7 (Java PKCS5Padding) → чистый вывод

Скопирован размер IV от AES (16 байт)

Блок DES — 8 байт, поэтому и IV — 8 байт. Вставленный из кода AES 32-значный hex IV проваливает проверку длины; 8-значный IV дополняется нулями и читается неверно.

✗ Неверно
IV 00000000000000000000000000000000 (32 hex-цифры) → ошибка "IV должен быть 8 байт"
✓ Верно
IV 0000000000000000 (16 hex-цифр) → принят

Неверный IV в CBC: мусор только в первых 8 байтах

Дешифрование многоблочного шифротекста с неверным IV не выдаёт ошибку — мусорным оказывается только первый 8-байтовый блок, остальное расшифровывается нормально (IV доходит лишь до первого блока, а проверка паддинга живёт в последнем). Увидели «первые символы искажены, остальное нормально» — проверяйте IV, прежде чем ключ; одноблочный шифротекст вместо этого ломает паддинг и падает с bad decrypt.

✗ Неверно
Многоблочный шифротекст + неверный IV → первые 8 байт искажены, остальное нормально — прочитано как "неверный ключ"
✓ Верно
Поменять только IV (ключ не трогать) → первый блок восстановился, значит дело было в IV

openssl enc -K молча усекает длинные ключи

-K берёт только нужные байты и печатает однострочное предупреждение, которое скрипты проглатывают. Когда другая сторона говорит «ключ — вот эти 48 hex-цифр», но на деле шифровала первыми 16, дешифровка полным ключом не удастся.

✗ Неверно
В shell: `-K <49 hex-цифр>` → "hex string is too long, ignoring excess" потеряно в конвейере
✓ Верно
Сгенерировать эквивалентной командой этого инструмента `-K` правильной длины, затем сверить байты ключа с другой стороной

Одиночный DES падает на OpenSSL 3 с "unsupported"

В провайдере по умолчанию OpenSSL 3 нет des-ecb/des-cbc; запуск без флагов бросает digital envelope routines::unsupported. Добавьте -provider legacy -provider default или используйте des-ede3 с K‖K‖K (алгебраически это одиночный DES).

✗ Неверно
openssl enc -des-ecb -K … → Ошибка: unsupported
✓ Верно
openssl enc -des-ecb -provider legacy -provider default -K … (или des-ede3-ecb -K <K‖K‖K>)

Когда нужно онлайн-шифрование DES

Отладка криптографии сообщений в legacy-системах
Банковские клиринги, вычисление MAC в POS-шлюзах и шифрование старых ERP-интерфейсов до сих пор работают на DES/3DES. Вставьте сюда сообщение и ключ, чтобы проверить «правильный ли ключ, какой режим, какой паддинг», не разворачивая окружение Java или PHP.
Миграция legacy-кода на Java / PHP / .NET
Перед переключением сравните вывод Cipher.getInstance("DES/ECB/PKCS5Padding") или openssl_encrypt(..., 'des-ede3-cbc', ...) с этим инструментом байт в байт. 2-ключевые/3-ключевые варианты распознаются по длине ключа — угадывать ничего не нужно.
Аудит безопасности и обучение
Продемонстрируйте утечку закономерностей в ECB (одинаковые блоки открытого текста → одинаковые блоки шифротекста), проверьте вырождение 3DES (K1=K2=K3 вырождается в одиночный DES) и сверитесь с вектором FIPS 81 — стандартный набор для отчётов пентестов и курсов криптографии.
Генерация примеров шифротекстов для документации
Когда внутренней вики или документации API нужен воспроизводимый пример, вычислите его здесь с фиксированным ключом и IV — читатели смогут проверить его эквивалентной командой OpenSSL, а продакшн-данные никуда не вставляются.

DES / 3DES и режимы блочных шифров: как это работает

Блок и ключ
DES обрабатывает 64-битные блоки через 16 раундов Фейстеля, каждый со своим 48-битным подключом, получаемым из 56-битного мастер-ключа перестановками сжатия PC-1/PC-2 и запланированными сдвигами. Восемь S-блоков — единственный источник нелинейности; критерии их проектирования так и не были полностью опубликованы.
Сборка EDE в 3DES
C = E_K3(D_K2(E_K1(P))). Дешифрование в середине обеспечивает вырождение в одиночный DES при K1=K2=K3 — цель обратной совместимости. 2-ключевой вариант имеет 2×56=112 бит номинального материала ключа, но эффективная стойкость по NIST около 80 бит (SP 800-57 Part 1); 3-ключевой номинально 168 бит при стойкости 112 бит (не рекомендуется).
ECB и CBC
ECB шифрует блоки независимо — одинаковые блоки открытого текста дают одинаковые блоки шифротекста, видимую утечку закономерностей, которую 8-байтовые блоки делают хуже, чем AES-ECB. CBC подмешивает предыдущий блок шифротекста (для первого — IV) в открытый текст перед шифрованием и был мейнстримом банковской эпохи DES. Оба режима дают шифротекст, кратный 8 байтам.
Паддинг: PKCS#7 / нулевой / без паддинга
PKCS#7 добавляет n байт со значением n, сколько бы их ни не хватало (не хватает 3 → 03 03 03), а полный блок дополняет целым лишним блоком — это и есть "PKCS5Padding" в Java для DES. Нулевой паддинг заполняет 0x00 и теряет данные, если открытый текст действительно заканчивается на 0x00. Без паддинга требуется точная кратность 8.
Legacy-провайдер в OpenSSL 3
OpenSSL 3 перенёс одиночный DES в legacy-провайдер, выключенный по умолчанию: CLI требует -provider legacy -provider default, а некоторые сборки (включая вкомпилированный в Node OpenSSL) не содержат его вовсе. 3DES (des-ede/des-ede3) остаётся в провайдере по умолчанию. Чисто-TS-движок этого инструмента это не затрагивает.

Как правильно использовать DES (совместимость с legacy)

Никогда не используйте DES в новых системах ни в каком виде
56 бит одиночного DES вскрываются полным перебором; 64-битный блок несёт границу дня рождения Sweet32 (CVE-2016-2183), а NIST ограничивает один набор ключей ≈8 МБ (2²⁰ блоков) открытого текста; 2 ключа — запрещено, 3 ключа — шифрование запрещено после 2023 года. Для всего нового используйте AES-256. Этот инструмент существует, чтобы читать и безопасно мигрировать legacy-системы.
В legacy-совместимости сначала — побайтовое совпадение
Прикоснувшись к старой системе, сначала воспроизведите здесь шифротекст со старыми параметрами байт в байт и лишь затем меняйте код. Уточните длину ключа, режим, паддинг и источник IV (фиксированный или случайный, в заголовке или вне потока) до смены алгоритма.
Не используйте IV повторно, даже в legacy-системах
Повторное использование CBC IV с одним и тем же ключом раскрывает связь между первыми блоками двух открытых текстов. Если legacy-протокол требует фиксированного IV, запишите это как дефект в список миграции — не наследуйте как традицию.
Держите ключи вне исходного кода
Системы эпохи DES по привычке хардкодят ключи в исходниках или конфигах. Аудитируя такую систему, поставьте «как хранится ключ» в отчёте рядом с «какой алгоритм» — в большинстве инцидентов дырой оказывалось именно первое.

Вопросы и ответы по шифрованию/дешифрованию DES

Дешифрование DES падает с ошибкой "bad decrypt" или ошибкой паддинга — что проверить?
Для дешифрования все параметры должны совпадать с шифрующей стороной: байты ключа, длина ключа (8/16/24), режим (ECB/CBC), IV, паддинг и формат шифротекста — hex или Base64. Две самые частые ловушки: несовпадение длины ключа ("DES-ключ" из 32 hex-символов — это 16 байт, то есть 2-ключевой 3DES, а не одиночный DES) и путаница в названиях паддинга (Java PKCS5Padding — это PKCS#7 для DES — не выбирайте None). Раскрывающаяся панель справа показывает эквивалентную команду OpenSSL для текущих настроек; отправьте её другой стороне — это самый быстрый способ найти расхождение.
Какой длины ключ DES? А 3DES?
Одиночный DES: номинально 64 бита (8 байт, 56 эффективных — один бит в каждом байте является битом чётности). 3DES существует в двух вариантах: 2-ключевой (16 байт, K1‖K2, где K3=K1) и 3-ключевой (24 байта, K1‖K2‖K3). Номинальный материал ключа — 112/168 бит, но эффективная стойкость по NIST (SP 800-57 Part 1 Rev.5, таблица 2) составляет лишь около 80 и 112 бит — и 3-ключевой вариант к тому же не рекомендуется к применению. Инструмент определяет вариант по количеству байт; любая иная длина вызывает ошибку — CryptoJS и openssl enc -K вместо этого молча усекают или дополняют нулями, и это главная причина проблем совместимости.
Что такое IV и какой у него размер для DES?
IV — это 8-байтовое значение, которое CBC подмешивает в первый блок; в ECB он не используется. Он должен быть ровно 8 байт (16 hex-цифр или 8 ASCII-символов). Учтите: IV у DES — 8 байт, а у AES — 16, поэтому IV от AES сразу не подойдёт. Никогда не используйте один IV повторно с одним и тем же ключом.
Во что отображается Java DES/ECB/PKCS5Padding в этом инструменте?
Режим ECB + паддинг PKCS#7. В JCE "PKCS5Padding" для DES исполняет универсальный алгоритм PKCS#7 — PKCS#5 когда-то определял паддинг только для 8-байтовых блоков, как раз блока DES. Вывод Java Cipher.getInstance("DES/ECB/PKCS5Padding") здесь расшифровывается с ECB + PKCS#7 и 8-байтовым ключом одиночного DES. ⚠️ 3DES в Java (DESede) принимает только 24-байтовые ключи — для 2-ключевого варианта вам придётся самому развернуть K1‖K2 в K1‖K2‖K1.
Как соотносятся названия алгоритмов des-ede3 в PHP?
PHP заимствует названия OpenSSL: des-ede3-cbc — это 3-ключевой 3DES + CBC, des-ede3-ecb — 3 ключа + ECB; des-ede-cbc — 2-ключевой вариант. Ключ из 24 байт выбирает 3 ключа, из 16 — 2 ключа.
Что такое биты чётности в ключе DES? Они проверяются?
Младший бит каждого байта ключа определён как бит чётности, поэтому настоящий 56-битный ключ «сидит» внутри 64 бит. FIPS 46-3 не требует его проверки — OpenSSL, Java и этот инструмент его игнорируют; подойдут любые 8 байт, а изменение битов чётности не меняет шифротекст. Исключение — .NET: он сначала нормализует чётность, а затем сверяется с таблицей слабых ключей, поэтому нулевые и другие слабые ключи в .NET отклоняются, тогда как все остальные библиотеки шифруют их без вопросов — ловушка, которая срабатывает только при переносе тестовых ключей с Java/OpenSSL на .NET.
Что происходит в 3DES, когда K1 = K2?
В 2-ключевом 3DES всегда K3 = K1; если при этом ещё и K1 = K2, вся цепочка EDE вырождается в одиночный DES: E_K(D_K(E_K(P))) = E_K(P). То же происходит, когда все три 8-байтовые компоненты 24-байтового ключа одинаковы. Этот инструмент всё равно шифрует (совместимость прежде всего), но реальная стойкость при этом — 56 бит одиночного DES, а не 3DES.
DES ещё безопасен?
Нет — он только для совместимости с legacy-системами. NIST отозвал одиночный DES 19.05.2005 (ключ в 56 бит вскрывается полным перебором; EFF Deep Crack сделал это за 56 часов в 1998-м и за 22 часа год спустя с distributed.net). SP 800-131A Rev.2 помечает шифрование 2-ключевым TDEA как запрещённое, а 3-ключевое шифрование — как запрещённое после 31.12.2023 (дешифрование остаётся в статусе "Legacy use" — только для чтения исторических данных); сам SP 800-67 был отозван 01.01.2024. Малый 64-битный блок несёт и границу дня рождения класса Sweet32 (CVE-2016-2183) — NIST ограничивает один набор ключей 2²⁰ блоками (≈8 МБ) открытого текста. Для всего нового используйте AES-256. Этот инструмент существует потому, что банковские клиринги, платёжные шлюзы и старые системы на Java/.NET до сих пор гоняют сообщения эпохи DES — а чинить их начинается с умения их прочитать.
Почему мой результат 3DES отличается от Java/PHP?
Проверяйте в порядке вероятности: ① длину ключа — "DES-ключ из 32 hex-символов" у другой стороны — это 16 байт (2-ключевой 3DES), а вы дешифровали как одиночный DES; ② режим — голый "DES" в Java по умолчанию ECB, имена OpenSSL без суффикса режима, des-ede3/des-ede, — это ECB (псевдоним CBC — -des3); openssl_encrypt в PHP требует явного имени алгоритма — путает то, что по умолчанию он выводит текст Base64, а не сырые байты; ③ паддинг — старый mcrypt в PHP часто использовал нулевой паддинг, JCE — PKCS#5/#7; ④ кодирование — hex против Base64 и регистр; ⑤ ловушка CryptoJS с паролем — передача строки в качестве "ключа" запускает выведение ключа (MD5 + случайная соль, вывод с префиксом Salted__, каждый раз разный), что вообще не является сырым ключом — главная причина ситуации "тот же код, каждый запуск разный результат". Этот инструмент позволяет переключать каждый параметр; эквивалентную команду OpenSSL справа можно отправить другой стороне для воспроизведения.
ECB или CBC — что использовать?
То, что требует система, с которой вы взаимодействуете, — legacy-совместимость не оставляет выбора. Если выбирать всё же вам, всегда CBC со случайным IV: ECB превращает одинаковые блоки открытого текста в одинаковые блоки шифротекста, а малые 8-байтовые блоки DES утекают закономерности ещё заметнее, чем AES-ECB. Банковские протоколы эпохи DES используют оба; сначала сверьтесь с документацией протокола.
Работает ли это офлайн? Загружаются ли мои данные?
Все вычисления происходят в вашем браузере (чистый TypeScript, ноль зависимостей, ноль сетевых запросов); ключи и открытый текст никогда не покидают устройство. После загрузки страницы можно отключиться от сети и продолжать работать. Для инструмента, работающего с ключами, это единственно приемлемая форма.
2-ключевой или 3-ключевой 3DES — какой чаще встречается в legacy-системах?
Чаще — 2-ключевой (16 байт): банки и платёжная индустрия разворачивали 16-байтовое ключевое оборудование ради совместимости, и SP 800-67 назначил ему отдельную (более раннюю) дату вывода из эксплуатации. Так что "3DES-ключ" из 32 hex-символов с высокой вероятностью — 2-ключевой вариант. Этот инструмент определяет вариант по количеству байт автоматически.

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

Все инструменты →

Инструмент расшифровки AES — совместим с OpenSSL и CryptoJS

Безопасность

Расшифровывайте AES онлайн — GCM/CBC/CTR, парольная фраза или необработанный ключ, автоматическое определение формата OpenSSL и CryptoJS «U2FsdGVkX1». Работает на 100% в браузере, ключи никогда не покидают страницу.

Инструмент шифрования AES — GCM, CBC и CTR

Безопасность

Бесплатное онлайн-шифрование AES — AES-128/192/256, GCM/CBC/CTR, парольная фраза (PBKDF2) или необработанный ключ. Работает на 100% в браузере, ничего не загружается на сервер.

Генератор и проверка bcrypt-хешей

Безопасность

Создавайте и проверяйте bcrypt-хеши паролей онлайн — настраиваемый фактор стоимости, префиксы $2b$/$2a$/$2y$. 100% в браузере; пароль никуда не отправляется.

Калькулятор контрольной суммы CRC

Безопасность

Вставьте текст или шестнадцатеричные байты и получите все 63 варианта CRC-8, CRC-16 и CRC-32 сразу. Контрольная сумма не сходится? Введите её — инструмент назовёт вариант: MODBUS, CCITT-FALSE, XMODEM, KERMIT. Всё в браузере.

HMAC генератор и проверка подписи

Безопасность

Бесплатный онлайн-генератор и верификатор HMAC. Вычисляйте HMAC-SHA256/SHA1/SHA384/SHA512 с ключами в Text, Hex или Base64 и выводом в Hex/Base64/Base64URL. Всё в браузере — ключи не покидают страницу.

Декодер JWT

Безопасность

Декодируйте JWT-токены онлайн бесплатно. Просмотр header, payload, signature, срока действия, алгоритма и claims. 100% в браузере — токен не покидает устройство. Без регистрации.