Кодировщик/декодировщик Hex

Шестнадцатеричное (hex) кодирование представляет двоичные данные с помощью 16 символов (0-9 и A-F). Каждый байт становится двумя hex-символами. Этот инструмент декодирует hex-строки, показывая исходное содержимое, определяет типы файлов по магическим байтам и предоставляет просмотрщик в стиле hex-редактора для инспекции двоичных данных.

Типичные сценарии использования

  • Декодирование hex-кодированных данных из API и логов
  • Просмотр заголовков двоичных файлов и магических байтов
  • Анализ полезных нагрузок сетевых пакетов
  • Отладка криптографических значений (хешей, ключей, IV)
  • Просмотр сырых двоичных данных из баз данных или файлов
  • Конвертация hex-дампов из инструментов отладки

Возможности

  • Декодирование hex-строк в нескольких форматах (простой, с пробелами, с префиксом 0x, через двоеточие, массив C)
  • Hex-просмотрщик со смещением, hex-байтами и ASCII-представлением
  • Автоопределение типа декодированного содержимого (JSON, XML, текст и др.)
  • Цепочное определение — автообнаружение декодированного содержимого с кнопкой «Декодировать как X»
  • Идентификация типа файла по магическим байтам для двоичных данных
  • Виртуальная прокрутка для больших файлов с ленивой загрузкой блоков
  • Конвертация между hex-форматами (простой, с пробелами, 0x, через двоеточие, массив C)
  • Кодирование текста в hex в различных форматах

Примеры

Hex-строка, которая декодируется в объект JSON.

7b226e616d65223a22746573742e6a736f6e227d

Hex с пробелами

Попробовать →

Hex-байты, разделённые пробелами (часто встречаются в выводе отладки).

48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21

Заголовок PDF

Попробовать →

Hex-байты, представляющие сигнатуру файла PDF.

25504446 2d312e34 0a312030 206f626a

Массив в стиле C

Попробовать →

Hex-байты, отформатированные как массив C.

0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x21

Стиль MAC-адреса

Попробовать →

Hex-байты, разделённые двоеточиями, как MAC-адрес.

de:ad:be:ef:ca:fe

Советы

  • Hex-кодирование удваивает размер данных (каждый байт становится 2 символами).
  • Распространённые магические байты: PDF начинается с 25504446 (%PDF), ZIP с 504B0304.
  • Данные изображений (PNG, JPEG и др.) определяются автоматически и используют инструмент анализа изображений.
  • Префикс 0x обозначает шестнадцатеричное число в большинстве языков программирования.
  • MAC-адреса и UUID используют двоеточие или дефис в качестве разделителей.
  • Hex нечувствителен к регистру: 0xFF равно 0xff.

Описание Кодировщик/декодировщик Hex

Шестнадцатеричное (hex) кодирование представляет двоичные данные в системе счисления с основанием 16, где каждый байт отображается ровно на два символа из набора 0-9 и A-F. Это прямое побайтовое преобразование делает hex стандартным представлением двоичных данных в отладке, криптографии, сетевом программировании и низкоуровневом программировании.

В отличие от Base64, который затеняет границы байтов своей 6-битной группировкой, каждая пара hex-символов отображается ровно на один байт, что делает чтение отдельных значений тривиальным. Адреса памяти, содержимое регистров, дампы сетевых пакетов, заголовки файлов и криптографические значения — всё это традиционно отображается в hex.

Hex-строки встречаются в различных форматах. Простой hex (48656c6c6f) распространён в API. Hex с пробелами (48 65 6c 6c 6f) встречается в перехватах пакетов. Hex через двоеточие (48:65:6c:6c:6f) используется для MAC-адресов и отпечатков сертификатов. Префикс 0x (0x48, 0x65) — стандартный hex-литерал в C, JavaScript, Python и большинстве языков. Массивы в стиле C ({0x48, 0x65}) встраивают двоичные данные в исходный код.

Идентификация типа файла основана на магических байтах — определённых hex-последовательностях в начале файла, идентифицирующих его формат. PDF начинается с 25504446 (%PDF), PNG с 89504E47, ZIP с 504B0304, а исполняемые файлы ELF с 7F454C46. Распознавание этих сигнатур необходимо для отладки кода обработки файлов и анализа двоичных данных.

Hex и Base64 оба кодируют двоичные данные в текст, но делают разные компромиссы. Hex отображает каждый байт на 2 символа, удваивая размер данных (100% накладные расходы), тогда как Base64 отображает каждые 3 байта на 4 символа с накладными расходами всего около 33%. Base64 более экономичен по размеру для больших данных, что делает его лучшим выбором для встраивания двоичного контента в текстовые форматы. Hex более удобен для побайтовой инспекции, что делает его стандартом для отладки, криптографических значений и анализа протоколов, где важны значения отдельных байтов.

Магические байты (также называемые сигнатурами файлов) — это определённые последовательности байтов в самом начале файла, идентифицирующие его формат независимо от расширения. Файлы PNG начинаются с 89 50 4E 47, JPEG с FF D8 FF, а ZIP с 50 4B 03 04. Unix-команда «file» определяет типы файлов по магическим байтам, и тот же метод используется в этом инструменте для идентификации двоичного содержимого в hex-данных.

Hex нечувствителен к регистру, потому что цифры A-F представляют значения 10-15 независимо от того, записаны ли они в верхнем или нижнем регистре — 0xFF и 0xff оба означают десятичное 255. Выбор регистра — чисто условность: верхний регистр часто используется в спецификациях и выводе хеш-функций, а нижний — в контексте веб-разработки, таком как CSS-цвета и URL-кодирование. Префикс 0x указывает на шестнадцатеричный числовой литерал в большинстве языков программирования, включая C, C++, Java, JavaScript, Python, Go и Rust. Без префикса значение вроде «10» было бы неоднозначным между десятичным и шестнадцатеричным; запись 0x10 однозначно указывает на шестнадцатеричное число (десятичное 16).

← Вернуться ко всем инструментам