Skip to main content
CheckTown
Інструменти

Base32 Encoding: A Complete Guide

Опубліковано 5 хв читання
У цій статті

Що таке Base32?

Base32 — це схема кодування бінарних даних у текст, визначена в RFC 4648, яка представляє бінарні дані за допомогою набору з 32 символів (A-Z та 2-7). На відміну від Base64, Base32 використовує лише великі літери та цифри, що робить його нечутливим до регістру та зручним для ручного введення.

Base32 створює довший вихід, ніж Base64 (приблизно 60% накладних витрат проти 33%), але компромісом є покращена читабельність та сумісність із системами, нечутливими до регістру або які забороняють спеціальні символи, такі як + та /.

Як працює кодування Base32

Base32 перетворює кожну групу з 5 байтів (40 біт) у 8 символів Base32 (по 5 біт кожен), додаючи символи = коли довжина вхідних даних не кратна 5.

  • 5-бітне групування — вхідні байти розбиваються на 5-бітні блоки, кожен з яких відповідає одному з 32 символів алфавіту A-Z, 2-7
  • Доповнення — символи = доповнюють вихід, щоб його довжина завжди була кратна 8 символам
  • Варіанти — Base32Hex використовує 0-9, A-V замість A-Z, 2-7 для збереження порядку сортування закодованих даних

Спробуйте безкоштовно — реєстрація не потрібна

Кодувати або декодувати Base32 →

Коли використовувати Base32

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

  • Секрети TOTP — програми-автентифікатори, такі як Google Authenticator, використовують секрети, закодовані в Base32, оскільки користувачам може знадобитися вводити їх вручну
  • Кодування Crockford — варіант Base32, який видаляє неоднозначні символи (I, L, O, U) для чистіших ідентифікаторів
  • DNS та файлові системи — Base32 працює у середовищах, нечутливих до регістру, де змішаний алфавіт Base64 спричинив би колізії

Часті запитання

Яка різниця між Base32 та Base64?

Base32 використовує 32 символи (A-Z, 2-7) і створює приблизно на 60% більший вихід, тоді як Base64 використовує 64 символи (A-Z, a-z, 0-9, +, /) з приблизно 33% накладними витратами. Base32 нечутливий до регістру та уникає спеціальних символів, що робить його кращим для ручного введення.

Чому програми-автентифікатори використовують Base32 замість Base64?

Програми-автентифікатори використовують Base32, оскільки користувачам іноді потрібно вводити секретний ключ вручну. Алфавіт Base32 лише з великих літер запобігає плутанині між схожими символами (як мала L та цифра 1) і надійно працює між системами, нечутливими до регістру.

Що таке Base32Hex і коли його використовувати?

Base32Hex (також називається base32hex або розширений hex) використовує символи 0-9 та A-V замість стандартного алфавіту A-Z, 2-7. Він зберігає лексикографічний порядок сортування оригінальних бінарних даних після кодування, що корисно для індексації баз даних та відсортованих структур даних.

Пов'язані інструменти