Base64 to Hex

Конвертация между Base64 и шестнадцатеричным форматом

Base64

Hex

Работает локально · Безопасно вставлять секреты
Результат появится здесь…
Base64 → Hex

Что такое конвертация Base64 в Hex?

Конвертация Base64 в hex преобразует данные между двумя распространёнными схемами двоично-текстового кодирования. Base64 представляет двоичные данные с помощью 64 символов ASCII (A-Z, a-z, 0-9, +, /), кодируя каждые 3 байта как 4 символа. Шестнадцатеричный формат представляет каждый байт ровно двумя символами из 16-символьного алфавита (0-9, a-f). Преобразование между этими форматами — двухэтапный процесс: декодировать строку Base64 в исходные байты, а затем перекодировать их в целевой формат.

Шестнадцатеричная запись является стандартным представлением двоичных данных в низкоуровневом программировании, криптографии и сетевых протоколах. Каждый hex-символ соответствует ровно 4 битам (нибблу), что делает чтение отдельных байтов наглядным. Хэш SHA-256, например, почти всегда отображается как строка из 64 hex-символов. Base64, напротив, оптимизирован для компактности — тот же хэш занимает лишь 44 символа в Base64 — и является стандартным кодированием для вложений электронной почты (MIME), data URI и API-нагрузок.

Оба кодирования определены в RFC 4648. Преобразование между ними является обратимым: данные не добавляются и не удаляются, меняется только текстовое представление. Это делает конвертацию Base64 в hex рутинной операцией при отладке зашифрованных данных, проверке отпечатков сертификатов или сравнении хэш-значений между системами, использующими разные форматы отображения.

Зачем использовать этот конвертер Base64 в Hex?

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

Мгновенная конвертация
Вставьте Base64 или hex и сразу увидите результат — без обращения к серверу. Двунаправленный режим позволяет переключаться между направлениями одним кликом.
🔒
Обработка без передачи данных
Вся конвертация выполняется локально в браузере на JavaScript. Ваши криптографические ключи, хэши и токены никогда не передаются по сети.
Двунаправленный режим
Переключайтесь между Base64-в-hex и hex-в-Base64 одной кнопкой. Инструмент автоматически распознаёт и обрабатывает стандартные и URL-safe варианты Base64.
📋
Чистый результат, готовый к вставке
Результат выводится в нижнем регистре без разделителей и префиксов — именно в том формате, который ожидают большинство API, CLI и языков программирования. Скопируйте одним кликом.

Сценарии использования Base64 в Hex

Frontend-разработчик
Конвертируйте Base64-закодированные API-ответы в hex при отладке бинарных протоколов, фреймов WebSocket или содержимого ArrayBuffer в консоли браузерных DevTools.
Backend-инженер
Переводите хэш-дайджесты из JWT-подписей или HMAC-ответов в hex для сравнения со значениями OpenSSL или данными в базе, хранящимися в шестнадцатеричном формате.
DevOps / SRE
Проверяйте отпечатки TLS-сертификатов, конвертируя открытый ключ Base64 из PEM-файлов в hex-формат, отображаемый браузерами и средствами мониторинга.
Специалист по безопасности
Анализируйте ключи шифрования и векторы инициализации (IV), поступающие в Base64 в API-трафике — конвертируйте в hex для побайтового анализа в Wireshark или CyberChef.
Инженер по данным
Преобразуйте Base64-закодированные двоичные столбцы из баз данных (PostgreSQL bytea, MongoDB BinData) в hex для сравнения, журналирования или миграционных скриптов.
Студент / Учащийся
Поймите взаимосвязь между Base64 и шестнадцатеричным форматом, наблюдая, как одни и те же байты представляются в каждом из форматов — это укрепляет понимание основ кодирования.

Сравнение Base64 и шестнадцатеричного кодирования

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

СвойствоBase64Hexadecimal
АлфавитA-Z a-z 0-9 + / =0-9 a-f
Бит на символ64
Увеличение размера~33% больше исходного100% больше исходного
ЧитаемостьКомпактный, но непрозрачныйКаждый байт виден как 2 символа
Основное применениеEmail, data URI, APIКриптохэши, MAC-адреса, цвета
СпецификацияRFC 4648IEEE 754, RFC 4648 sec 8

Примеры конвертации

В таблице ниже показаны одинаковые последовательности байтов в представлении Base64 и шестнадцатеричном. Обратите внимание: длина hex-вывода всегда ровно вдвое больше числа байтов, а длина Base64 равна ceil(byteCount / 3) * 4.

Входные данные (текст / байты)Base64Hex
HelloSGVsbG8=48656c6c6f
ABQUI=4142
0xFFMHhGRg==30784646
AAE=0001
key=vala2V5PXZhbA==6b65793d76616c
Þ­¾ï (bytes)3q2+7w==deadbeef

Как работает конвертация

Конвертация Base64 в шестнадцатеричный формат — двухэтапный процесс. Сначала строка Base64 декодируется в исходные байты: каждый символ сопоставляется с 6-битным значением, биты конкатенируются и разбиваются на 8-битные байты (паддинг отбрасывается). Этот шаг обращает кодирование, определённое в RFC 4648 Section 4.

Затем каждый байт преобразуется в двузначное шестнадцатеричное представление. Значение байта от 0 до 255 соответствует диапазону 00–ff. Байт 0x4F (десятичное 79) становится символами '4' и 'f'. Итоговая hex-строка — это просто конкатенация всех двухсимвольных пар. Обратное направление (hex в Base64) применяет эти шаги в обратном порядке: разбирает hex-пары в байты, а затем кодирует результат в Base64.

4-битный двоичный кодHex-цифра
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010a
1011b
1100c
1101d
1110e
1111f

Примеры кода

Приведённые ниже готовые примеры показывают, как конвертировать между Base64 и hex на JavaScript, Python, Go и в командной строке. Каждый пример охватывает оба направления конвертации.

JavaScript (browser / Node.js)
// Base64 to Hex
function base64ToHex(b64) {
  const raw = atob(b64)
  return Array.from(raw, c =>
    c.charCodeAt(0).toString(16).padStart(2, '0')
  ).join('')
}
base64ToHex('SGVsbG8=') // → "48656c6c6f"

// Hex to Base64
function hexToBase64(hex) {
  const bytes = hex.match(/.{1,2}/g).map(b => parseInt(b, 16))
  return btoa(String.fromCharCode(...bytes))
}
hexToBase64('48656c6c6f') // → "SGVsbG8="

// Node.js Buffer shorthand
Buffer.from('SGVsbG8=', 'base64').toString('hex')   // → "48656c6c6f"
Buffer.from('48656c6c6f', 'hex').toString('base64')  // → "SGVsbG8="
Python
import base64, binascii

# Base64 to Hex
b64_str = 'SGVsbG8='
raw_bytes = base64.b64decode(b64_str)
hex_str = raw_bytes.hex()            # → '48656c6c6f'
# or: binascii.hexlify(raw_bytes).decode()

# Hex to Base64
hex_str = '48656c6c6f'
raw_bytes = bytes.fromhex(hex_str)
b64_str = base64.b64encode(raw_bytes).decode()  # → 'SGVsbG8='

# One-liner for quick conversion
base64.b64encode(bytes.fromhex('deadbeef')).decode()  # → '3q2+7w=='
Go
package main

import (
    "encoding/base64"
    "encoding/hex"
    "fmt"
)

func main() {
    // Base64 to Hex
    raw, _ := base64.StdEncoding.DecodeString("SGVsbG8=")
    hexStr := hex.EncodeToString(raw)
    fmt.Println(hexStr) // → "48656c6c6f"

    // Hex to Base64
    raw2, _ := hex.DecodeString("48656c6c6f")
    b64Str := base64.StdEncoding.EncodeToString(raw2)
    fmt.Println(b64Str) // → "SGVsbG8="
}
CLI (bash)
# Base64 to Hex (using base64 + xxd)
echo -n 'SGVsbG8=' | base64 -d | xxd -p
# → 48656c6c6f

# Hex to Base64
echo -n '48656c6c6f' | xxd -r -p | base64
# → SGVsbG8=

# OpenSSL alternative
echo -n 'SGVsbG8=' | openssl base64 -d | xxd -p
# → 48656c6c6f

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

В чём разница между Base64 и шестнадцатеричным форматом?
Base64 использует 64 символа и кодирует 6 бит на символ, что даёт около 33% увеличения размера по сравнению с исходными байтами. Шестнадцатеричный формат использует 16 символов и кодирует 4 бита на символ, что даёт 100% увеличение — ровно вдвое больше исходного размера. Base64 компактнее; hex нагляднее, поскольку каждый байт представлен ровно двумя символами.
Является ли конвертация Base64 в hex потерянной?
Нет. Base64 и hex — детерминированные, обратимые кодирования одних и тех же байтов. Конвертация между ними не изменяет, не сжимает и не шифрует данные. Последовательность байтов идентична до и после конвертации — меняется только текстовое представление.
Почему hex-вывод длиннее входного Base64?
Hex всегда даёт 2 символа на байт, тогда как Base64 — около 1,33 символа на байт. 20-байтовое значение занимает 28 символов в Base64, но 40 символов в hex. Это неизбежный компромисс: hex занимает больше места, зато граница каждого байта сразу видна.
Можно ли конвертировать Base64url (URL-safe Base64) в hex?
Да. Base64url заменяет + на - и / на _, а паддинг опускает. Инструмент автоматически нормализует Base64url перед конвертацией. В коде: замените - на + и _ на /, добавьте паддинг перед декодированием — полученные байты идентичны стандартному Base64.
Как конвертировать хэш SHA-256 из Base64 в hex?
Вставьте Base64-хэш в этот инструмент, чтобы получить 64-символьную hex-строку. В коде: декодируйте строку Base64 в байты (32 байта для SHA-256), затем закодируйте эти байты в hex. Например, на Python: base64.b64decode(b64_hash).hex() даёт шестнадцатеричное представление.
Что происходит, если в Base64 есть пробелы или переносы строк?
Большинство декодеров Base64, включая этот инструмент, удаляют пробельные символы перед декодированием. PEM-сертификаты и MIME-контент обычно разбивают Base64 на строки по 64 или 76 символов. Переносы строк не являются частью закодированных данных и безопасно игнорируются при конвертации.
Когда использовать hex вместо Base64?
Используйте hex, когда нужна побайтовая читаемость — при анализе криптографического вывода, отладке бинарных протоколов или задании цветовых значений (#ff5733). Используйте Base64, когда важна компактность — при встраивании данных в JSON, передаче по email (MIME) или формировании data URI. Для хранения и передачи Base64 занимает примерно на 33% меньше места, чем hex.