Усі статті

Base32: чим відрізняється від Base64 і коли зручніший

Base32 кодує бінарні дані у текст так само, як Base64, але використовує менший алфавіт — лише 32 символи (A–Z та цифри 2–7). Через це результат довший за Base64 приблизно на 60%, зате він стійкіший до помилок при ручному введенні чи копіюванні.

Чим алфавіт відрізняється від Base64

Base32 навмисно не включає символи, які легко переплутати візуально або при друці — наприклад, 0/O чи 1/I/l. Алфавіт складається виключно з великих літер і цифр, тому кодування регістронезалежне: ABCDEFG і abcdefg декодуються однаково.

Навіщо потрібен окремий формат

Base32 обирають там, де результат може вводитись вручну людиною або передаватись через системи, чутливі до регістру символів чи спеціальних знаків Base64 (+, /, =). Типовий приклад — імена доменів і DNS-мітки, які не розрізняють регістр.

Типові сценарії використання

  • Секретні ключі TOTP для двофакторної автентифікації (Google Authenticator та подібні застосунки).
  • Ідентифікатори в системах, де важлива регістронезалежність.
  • Кодування даних для середовищ з обмеженим набором допустимих символів.

Base32 проти Base64

Якщо розмір результату критичний і середовище коректно обробляє регістр та спецсимволи — вигідніший Base64. Якщо ж дані можуть передаватись голосом, вручну набиратись або проходити через регістронезалежні системи — Base32 надійніший вибір.

Base32 проти Base32hex

Існує ще один варіант — Base32hex (RFC 4648), який використовує алфавіт 0–9A–V замість A–Z2–7. Він зберігає порядок сортування рядків таким самим, як і порядок вихідних байтів, що важливо для деяких баз даних і файлових систем. Стандартний Base32 і Base32hex несумісні між собою — рядок, закодований одним варіантом, не декодується коректно іншим.

Спробувати інструмент