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-безпечний варіанти Base64.
📋
Чистий результат, готовий до вставки
Результат — рядок hex у нижньому регістрі без роздільників і префіксів — саме той формат, якого очікують більшість API, CLI та мов програмування. Скопіюйте одним кліком.

Сфери застосування Base64 to Hex

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

Порівняння кодувань Base64 і Hexadecimal

Base64 і hexadecimal обидва конвертують двійкові дані у друкований текст, але по-різному балансують між компактністю та читабельністю. Таблиця нижче підсумовує ключові відмінності.

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

Приклади конвертації

Таблиця нижче показує однакові послідовності байтів у представленні Base64 і шістнадцятковому форматі. Зверніть увагу: довжина hex завжди рівно вдвічі перевищує кількість байтів, тоді як довжина Base64 дорівнює ceil(кількістьБайтів / 3) * 4.

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

Як працює конвертація

Конвертація Base64 у шістнадцятковий формат — двофазний процес. Спочатку рядок Base64 декодується у вихідні байти: кожен символ відображається у своє 6-бітне значення, біти об'єднуються і розбиваються на 8-бітні байти (з відкиданням відступу). Цей крок відміняє кодування, визначене в RFC 4648, розділ 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-безпечний Base64) у hex?
Так. Base64url замінює + на - та / на _ і не використовує відступ. Цей інструмент автоматично нормалізує вхідні дані Base64url перед конвертацією. У коді замініть - на + та _ на /, потім додайте відступ перед декодуванням: отримані байти ідентичні стандартному Base64.
Як конвертувати хеш SHA-256 із Base64 у hex?
Вставте хеш Base64 у цей інструмент, щоб отримати 64-символьний рядок hex. У коді: декодуйте рядок Base64 у байти (32 байти для SHA-256), потім закодуйте ці байти у hex. Наприклад, у Python: bytes.fromhex є зворотним — base64.b64decode(b64_hash).hex() дасть вам представлення у hex.
Що відбувається, якщо вхідний Base64 містить пробіли або символи нового рядка?
Більшість декодерів Base64, включно з цим інструментом, видаляють пробіли перед декодуванням. Сертифікати у форматі PEM та вміст у кодуванні MIME зазвичай переносять Base64 через 64 або 76 символів на рядок. Розриви рядків не є частиною закодованих даних і безпечно ігноруються під час конвертації.
Коли слід використовувати hex замість Base64?
Використовуйте hex, коли потрібна читабельність на рівні байтів — перевірка криптографічного виводу, налагодження двійкових протоколів або задання значень кольорів (#ff5733). Використовуйте Base64, коли важлива компактність — вбудовування даних у JSON, передача електронною поштою (MIME) або формування data URI. Для зберігання та передачі Base64 економить близько 33% місця порівняно з hex.