Шифрование DES (устаревший алгоритм)
Шифруйте текст устаревшим DES в режимах CBC, CFB, OFB или ECB: парольная фраза OpenSSL des-cbc или 8-байтовый hex-ключ. Только для совместимости — DES небезопасен.
Результат — формат OpenSSL «Salted__» в Base64: случайная соль из 8 байт, затем шифротекст. Ключ и IV выводятся из парольной фразы и соли, поэтому один и тот же текст каждый раз шифруется по-разному. Эквивалентная команда:
openssl enc -des-cbc -md md5 -a -A -provider legacy -provider default -k '…'Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Шифрование DES?
Шифрует данные по стандарту Data Encryption Standard — блочному шифру 1977 года с 64-битным блоком и эффективным 56-битным ключом. Он нужен здесь, чтобы воспроизводить данные старых систем и работать с ними (банковские системы, смарт-карты, устаревшие файлы), а не для защиты чего-либо.
Как пользоваться Шифрование DES
- Оставьте Источник ключа равным Парольная фраза (совместимо с OpenSSL) и введите Парольная фраза либо переключитесь на Сырой ключ + IV (hex) и введите точные ключ и IV в hex.
- Выберите Режим и Дополнение (CBC с PKCS#7 — значение по умолчанию в OpenSSL).
- Введите или вставьте Открытый текст (или переключите кодировку ввода на Hex для двоичных данных).
- Нажмите Зашифровать, выберите Base64 или Hex в поле Кодировка результата и скопируйте шифротекст.
Пример
Raw key 133457799bbcdff1, mode ECB, padding None, hex plaintext 0123456789abcdef
85e813540f0ab405
Классический эталонный тест DES, кодировка результата Hex.
Когда использовать Шифрование DES
Используйте только тогда, когда устаревший протокол или формат файла требует DES, либо для получения эталонных тестовых векторов. Для всего нового берите AES. Triple DES тоже считается устаревшим.
Как работает Шифрование DES
DES выполняет 16 раундов сети Фейстеля над 8-байтовыми блоками. В режиме парольной фразы 8-байтовые ключ и IV выводятся из неё и случайной соли (EVP_BytesToKey MD5 или PBKDF2-SHA256), а результат записывается в формате OpenSSL Salted__, совместимом с openssl enc -des-cbc -provider legacy. В сыром режиме вы задаёте 8-байтовый ключ (16 hex-символов; биты чётности игнорируются) и 8-байтовый IV. CBC/ECB по умолчанию используют дополнение PKCS#7; CFB и OFB — 64-битные потоковые режимы.
Распространенные Случаи Использования
- Воспроизвести тестовые векторы DES, например ключ 133457799BBCDFF1 / открытый текст 0123456789ABCDEF
- Создать тестовые данные для устаревшей платёжной системы или системы со смарт-картами
- Объяснить на классическом примере, как работают блочные шифры и режимы
- Зашифровать данные для старого приложения, поддерживающего только DES
Примечание по Безопасности
Ключ DES в 56 бит можно перебрать за часы на обычном оборудовании. Используйте инструмент только для чтения или воспроизведения устаревших данных; никогда не шифруйте новые данные с помощью DES.
Часто Задаваемые Вопросы
Безопасен ли DES?
Нет. Его 56-битный ключ публично перебрали в 1998 году (EFF DES Cracker), а сегодня это занимает часы. Для реальных данных используйте AES.
Почему OpenSSL 3 сообщает, что шифр не поддерживается?
В OpenSSL 3 DES перенесён в провайдер legacy. Добавьте в команду -provider legacy -provider default, например openssl enc -des-cbc -md md5 -a -A -provider legacy -provider default -k ….
Какой длины должен быть ключ?
Ровно 8 байт (16 hex-символов). Младший бит каждого байта — бит чётности, который DES игнорирует, поэтому ключи, отличающиеся только этими битами, эквивалентны.