Cabinet Noir>Навчання / Base 64

Не знаєте, який це шифр? Розпізнайте його
Кодування, а не шифр: три байти стають чотирма символами з нерухомого алфавіту на 64 знаки.
Типкодування, а не шифрування
Зламзлам тривіальний
Епоха1990-ті
НазваСтандартизоване для MIME-додатків електронної пошти (Натаніель Боренштейн, RFC 2045).
Режимикодувати · розкодувати

Навчання

Base 64

Як працює Base64

Кодування, а не шифр

Base64 — друга велика Кодування цього сайту: її може відмінити будь-хто, вона нічого не ховає, і це не шифрування. Її мета — передавання: перетворити довільні байти на текст, який виживає в каналах, що розуміють лише текст, — у тілах листів, URL і JSON-файлах.

Ідея одним реченням

Кожні три байти входу (24 біти) перерізаються на чотири групи по шість бітів, і кожне шестибітове значення — від 0 до 63, звідси «base 64» — записується як літера з нерухомого алфавіту з 64 знаків: A–Z, a–z, 0–9, + та /.

Рецепт

  1. Візьміть три байти: 24 біти.

  2. Переріжте їх на чотири шестибітові числа (0–63).

  3. Знайдіть кожне число в таблиці 64 символів і запишіть символ.

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

Розібраний приклад

Крок 1 із 4
Шматок (3 байти)
Результат
MEE
TUVF

M — це 01001101, E — 01000101, знову E 01000101 — злейте 24 біти докупи, переріжте по шість: 19, 20, 21, 5 → TUVF. Зверніть увагу на останній рядок: самотній N стає Tg== — два символи корисного навантаження і два знаки наповнювача, бо 1 байт = 12 бітів заповнює лише дві шістки.

Математика

3 байти = 24 біти = 4 × 6 бітів → 4 символи
довжина зростає рівно на 4/3 (плюс наповнювач)

Це зростання — на третину більше за вхід, незалежно від вмісту — і пояснює, чому Base64-бриди здаються подозрівно одноманітними: будь- яка літера будь-якої мови потрапляє в ті самі 64 символи.

Для чого воно годиться — і для чого ні

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

Покрокові інструкції

Закодуйте що завгодно

  1. Наберіть або вставте будь-який текст — пробіли, розділовість, цифри, що завгодно — у поле повідомлення. У Base64 немає ані налаштувань, ані ключа.

  2. Прочитайте закодований рядок у поле результату. Алфавіт завжди A–Z a–z 0–9 + /, а хвіст добиває =.

Розкодьте рядок

  1. Вставте Base64 у поле повідомлення і натисніть кнопку обміну кнопку обміну. Немає налаштувань, які можна зіпсувати.

  2. Прочитайте розкоджений текст у поле результату.

  3. Якщо розкодування не вдається, рядок, найімовірніше, не валідний Base64: шукайте символи поза алфавітом, бракуючий наповнювач = чи пробіл, що затесався під час копіювання.

Впізнати Base64 у дикій природі

  1. Довжина кратна 4, лише літери, цифри, +, / і = наприкінці — ця комбінація є відбитком.

  2. Хвіст == означає, що остання група несла один байт; один = — два.

  3. Запам'ятайте урок цієї сторінки: упізнати кодування — миттєвість, розкодувати — миттєвість; Base64 — це транспортна обгортка, а не замок.

Глосарій

Кодування — Оборотне переписування даних для передавання чи зберігання; будь-хто може його відмінити, тож воно нічого не ховає.