← Усі інструменти

Кодування та декодування Base64

Кодуйте та декодуйте Base64 миттєво у браузері. Що таке Base64, чому він збільшує розмір на 33% і чому це кодування, а не шифрування.

Що таке Base64 і навіщо він потрібен

Base64 — це схема кодування двійкових даних у текст. Вона бере «сирі» байти — дані, з яких складаються зображення, архіви, криптографічні ключі чи будь-що інше, що не є простим читабельним текстом, — і переписує їх за допомогою невеликого безпечного алфавіту з 64 символів, що друкуються: 26 великих літер A–Z, 26 малих літер a–z, десять цифр 0–9 і два додаткових символи — зазвичай + і /. Знак рівності використовується для вирівнювання в кінці. Оскільки кожен символ, який вона виробляє, є звичайним ASCII, результат може проходити через системи, розраховані лише на текст.

Саме для цього і був винайдений Base64. Багато старіших протоколів — класичний приклад це електронна пошта — припускають, що вміст, який вони передають, є текстом. Якщо передати їм «сирі» двійкові дані, деякі байти спотворяться, відріжуться або будуть інтерпретовані як керуючі символи, і дані надійдуть пошкодженими. Base64 обходить цю проблему, перетворюючи байти у форму, яку будь-який текстозахищений канал пропустить без змін. Вихідні дані можна точно відновити на іншому кінці.

Abstract glowing stream of binary data transforming into a text character stream in dark indigo with cyan and gold light
Base64 перетворює «сирі» байти на безпечний, текстовий потік символів.

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

Механічно Base64 групує вхідні дані у блоки по три байти — тобто 24 біти — а потім перерізає ці ж 24 біти на чотири групи по шість бітів кожна. Шість бітів можуть представляти 64 можливих значення — саме тому алфавіт містить 64 символи. Отже, три байти вхідних даних завжди перетворюються на чотири символи виходу. Коли довжина вхідних даних не є кратною трьом, кодувальник доповнює останню групу одним або двома символами =, щоб декодувальник знав, де закінчуються реальні дані.

Це співвідношення «чотири до трьох» і є джерелом відомого штрафу за розмір: вихідні дані Base64 приблизно на 33% більші за вихідні. Якщо закодований текст переноситься на рядки фіксованої ширини, як часто вимагають поштові стандарти, за переноси рядків доведеться доплатити ще кілька відсотків. Накладні витрати — це ціна сумісності, і для більшості використань вони цілком виправдані.

Де ви зустрічаєте Base64

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

  • Data URI. Невелике зображення або шрифт можна вбудувати безпосередньо в HTML або CSS через URI виду data:, записавши вміст файлу у Base64. Браузер декодує його вбудовано, заощаджуючи окремий мережевий запит.
  • Вкладення електронної пошти. MIME — стандарт, що дозволяє електронній пошті передавати файли, — спирається на Base64 для переміщення двійкових вкладень через систему, розраховану лише на текст, без пошкоджень.
  • Базова аутентифікація HTTP. Знайомий заголовок Authorization: Basic ... — це лише ім'я користувача та пароль, з'єднані двокрапкою та закодовані в Base64, — саме тому базова автентифікація завжди повинна працювати через HTTPS.
  • Токени та конфігурація. JSON Web Tokens, сертифікати, SSH-ключі та незліченна кількість конфігураційних значень зберігаються або передаються у форматі Base64, щоб вони витримали копіювання-вставку та текстове зберігання.

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

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

Тому Base64 — поганий схованок для паролів, API-ключів або будь-якого чутливого значення. Якщо рядок лише виглядає заплутаним, це не робить його захищеним. Шифрування, навпаки, перетворює дані за допомогою секретного ключа, щоб тільки той, хто ним володіє, міг їх прочитати. Вони вирішують різні задачі: шифрування захищає конфіденційність, Base64 забезпечує сумісність. Їх часто використовують разом — наприклад, шифрують дані за допомогою AES, а потім кодують шифротекст у Base64, щоб він міг передаватися текстовим каналом, — але одне ніколи не замінює інше.

An abstract image dissolving into a flowing stream of glowing characters and reassembling, indigo navy with cyan and gold
Кодування та декодування є повністю зворотними — і не забезпечують жодної таємниці.

Кодування проти декодування

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

Для суміжних перетворень дивіться наш інструмент кодування/декодування URL для відсоткового кодування або декодувальник JWT, якщо вам потрібно перевірити сегменти Base64 всередині токена. Ви знайдете їх поряд із рештою наших інструментів для розробників.

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

Чи є Base64 формою шифрування?

Ні. Base64 — це кодування, а не шифрування. Воно не використовує ключ і є повністю зворотним для будь-кого, тому не забезпечує жодного захисту. Для захисту чутливих даних використовуйте справжнє шифрування, наприклад AES або RSA.

Чому Base64 збільшує розмір даних?

Base64 перетворює кожні три байти вхідних даних на чотири символи виходу, що додає приблизно 33% до розміру. Якщо вихідні дані розбиваються на рядки фіксованої довжини, переноси рядків додають ще кілька відсотків.

Які символи використовує Base64?

Стандартний алфавіт — це 26 великих літер, 26 малих літер, цифри від 0 до 9, а також символи плюса та косої риски, при цьому знак рівності використовується для вирівнювання в кінці.

Чи можна безпечно зберігати паролі у Base64?

Ні. Base64 лише змінює вигляд даних, але не те, хто може їх прочитати. Будь-хто може миттєво декодувати їх. Паролі слід хешувати надійним алгоритмом, а секрети — шифрувати.

Чи є цей інструмент Base64 приватним?

Так. Кодування та декодування відбуваються повністю у вашому браузері. Нічого з того, що ви вводите, не завантажується і не передається жодному серверу, тому ваші дані залишаються на вашому пристрої.

У чому різниця між кодуванням і декодуванням?

Кодування перетворює вихідний текст або двійкові дані на рядок Base64. Декодування є зворотнім: рядок Base64 знову перетворюється на точні вихідні байти. Це дзеркальні операції.