Конвертер Base64 в Hex

Вставьте Base64, и вы увидите те же байты в шестнадцатеричном виде. Это удобно, чтобы сравнивать хеши, проверять ключи и подписи, а также сопоставлять отпечатки, которые разные программы выводят в разных форматах.

Работает полностью в браузере. Данные никуда не загружаются.

Как пользоваться

  1. Вставьте строку Base64 в поле ввода. Base64 уже выбран в качестве исходной кодировки, а шестнадцатеричный формат — в качестве целевой.
  2. Получите результат в шестнадцатеричном виде: по две шестнадцатеричные цифры на каждый байт.
  3. Если нужен другой формат, выберите другую целевую кодировку, например Base58 или Base32. Чтобы перевести hex обратно в Base64, нажмите «Поменять ввод и вывод местами».
  4. Скопируйте результат.

Две записи одних и тех же байтов

И шестнадцатеричная запись, и Base64 представляют двоичные данные в виде текста. В шестнадцатеричной записи на каждый байт уходит два символа, поэтому значения отдельных байтов легко читать и сравнивать. Base64 упаковывает 3 байта в 4 символа и получается примерно на треть короче. Преобразование из одной записи в другую меняет только форму, а сами данные остаются прежними:

ЗначениеБайтовДлина в hexДлина в Base64
Хеш MD5163224
Хеш SHA-1204028
Хеш SHA-256, открытый ключ Ed25519326444
Хеш SHA-384489664
Хеш SHA-512, подпись Ed255196412888

Кроме того, именно в шестнадцатеричном виде данные показывают hex-редакторы, анализаторы сетевого трафика и отладчики, поэтому перевод Base64 в hex позволяет сопоставить данные с тем, что выводят эти инструменты.

Когда Base64 нужно перевести в hex

  • Сравнение хешей. Утилиты вроде sha256sum выводят hex, а атрибуты Subresource Integrity, хеши Content Security Policy и заголовки с контрольными суммами, такие как Content-MD5, используют Base64. Чтобы сравнить значения, переведите одно из них в формат другого.
  • Отпечатки SSH. ssh-keygen -l выводит отпечатки SHA256: в виде Base64 без дополнения, а DNS-записи SSHFP хранят тот же дайджест SHA-256 в hex. Вставьте часть после SHA256:, чтобы получить шестнадцатеричную форму.
  • Ключи, векторы инициализации и подписи. При отладке криптографического кода байты в hex позволяют легко проверить длину, сравнить значения и заметить лишний или пропущенный байт.

Какие входные данные принимает конвертер

Пробелы и переводы строк во входных данных Base64 игнорируются, безопасные для URL символы - и _ принимаются, а дополнение = необязательно, поэтому значения, скопированные из JSON, JWT или вывода терминала, можно вставлять как есть. Преобразуются декодированные байты: результат — это hex самих данных, а не символов Base64. Чтобы увидеть шестнадцатеричные коды фрагмента текста, воспользуйтесь инструментом Base16.

# Командная строка
printf '%s' "$B64" | base64 --decode | xxd -p

# Python
base64.b64decode(s).hex()

// Node.js
Buffer.from(s, 'base64').toString('hex')

Часто задаваемые вопросы

Что преобразуется: текст Base64 или байты, которые он представляет?
Байты. Сначала Base64 декодируется, затем каждый полученный байт записывается двумя шестнадцатеричными цифрами. Если вам нужны коды символов самой строки Base64, закодируйте её как текст с помощью инструмента Base16.
Почему результат в hex длиннее исходной строки Base64?

В шестнадцатеричной записи на байт нужно 2 символа, а в Base64 — около 1,33. 32-байтовый дайджест SHA-256 занимает 44 символа в Base64 и 64 символа в hex.

Как получить hex в верхнем регистре или с двоеточиями между байтами?
Регистр шестнадцатеричных цифр не важен: значения в нижнем и верхнем регистре равны. Если нужен определённый стиль, вставьте hex в кодировщик Base16 с форматом ввода «Hex» и выберите «Верхний регистр», разделитель «Пробел» или «Двоеточие» либо префикс 0x.
Можно ли преобразовать значения Base64URL из JWT или JSON Web Key?

Да. Безопасные для URL символы и отсутствующее дополнение обрабатываются автоматически, поэтому параметры ключей и подписи можно вставлять без изменений.