# Base64 кодер і декодер

> Кодуйте та декодуйте текст у Base64 онлайн. Підтримує UTF-8 і URL-safe формат, пояснює принципи кодування. Безкоштовно, працює у браузері.

URL: https://acrafto.com/uk/base64-koder-dekoder-onlajn/

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

Потрібно перетворити читабельний текст у формат Base64 для використання в HTTP-заголовках, або, навпаки, розшифрувати вміст токена API? Наш **Base64 Текстовий Кодер & Декодер** — це спеціалізований інструмент для роботи з текстовими рядками, який впорається навіть із такими складнощами, як діакритика чи спеціальні символи.

> **Працюєте із зображеннями?** Якщо ваш код починається з `data:image/png...` або ви хочете перетворити файл на текст, цей інструмент покаже вам лише безглузді символи. Використайте наш спеціалізований інструмент для перетворення на зображення.

## Як працює формат Base64?

Багато людей щодня використовують Base64, але мало хто знає, як він працює “під капотом”. Це не магія, а проста математика з бітами.

Звичайний текст у комп’ютері зберігається по 8 біт (1 байт). Проте Base64 використовує “алфавіт” із 64 символів (`A-Z`, `a-z`, `0-9`, `+`, `/`). Оскільки `2^6 = 64`, один символ Base64 представляє точно **6 біт** інформації.

**Процес перетворення (Алгоритм):**

1. Беруться три символи вашого тексту (3 × 8 біт = 24 біти).
2. Ці 24 біти розділяються на чотири групи по 6 біт.
3. Кожній групі присвоюється символ з таблиці Base64.

**Наслідок:** Оскільки ми перетворюємо 3 символи на 4 символи, отриманий рядок Base64 завжди приблизно **на 33 % довший** за початковий текст.

## Проблема кодування: Чому звичайні Base64 конвертери псують українську мову (або інші мови з нелатинськими символами)?

Якщо ви коли-небудь намагалися закодувати слово “Кінь” (або, наприклад, “Їжак”) у консолі браузера за допомогою функції `btoa('Кінь')`, то, ймовірно, отримали помилку: *String contains characters outside of the Latin1 range.*

Base64 спочатку був розроблений для 7-бітних ASCII символів. Українська мова, емодзі та інші спеціальні символи (UTF-8), однак, займають у пам’яті більше байтів (багатобайтові символи).

- Літера `a` = 1 байт.
- Літера `ї` = 2 байти.
- Emoji 🚀 = 4 байти.

Наш інструмент розв’язує цю проблему. Перед самим кодуванням у Base64 ми правильно перетворюємо текст на послідовність байтів UTF-8. Завдяки цьому ви можете безпечно кодувати JSON об’єкти, українські тексти та сучасні символи без ризику пошкодження даних.

## Де використовується текстове кодування Base64?

Хоча зображення в Base64 переважно використовуються для вбудовування в CSS/HTML, текстовий Base64 має зовсім інше застосування в бекенд-системах:

### 1\. HTTP Basic Authentication

Коли ви авторизуєтесь до API, заголовок часто виглядає так: `Authorization: Basic 0LrQvtGA0LjRgdGC0YPQstCw0Yc60L/QsNGA0L7Qu9GM` За цим кодом ховається просто об’єднане ім’я та пароль у форматі `користувач:пароль`. Наш інструмент дозволить вам легко генерувати або перевіряти ці заголовки.

### 2\. JSON Web Tokens (JWT)

Сучасні веб-додатки використовують для входу так звані JWT. Такий токен виглядає як три довгі рядки, розділені крапкою. Частина з даними (Payload) — це звичайний JSON-об’єкт, закодований у Base64.

- **Порада:** Спробуйте вставити сюди середню частину вашого JWT-токена та декодувати її. Ви побачите, які саме дані про вас фіксує додаток (наприклад, ID користувача, термін дії).

### 3\. Конфігураційні файли (Kubernetes Secrets)

Платформи, такі як Kubernetes, зберігають секретні дані (Secrets) у конфігураційних YAML-файлах саме в Base64. Це не шифрування, а спосіб збереження бінарних даних або тексту з проблемними символами (нові рядки, лапки) у текстовому файлі.

## Що таке “URL Safe Base64 кодування” і чому це важливо?

Стандартний алфавіт Base64 містить символи `+` (плюс) та `/` (коса риска). Обидва ці символи мають спеціальне значення в URL-адресах:

- `/` розділяє каталоги.
- `+` часто інтерпретується як пробіл.

Якби ви надіслали стандартний Base64 у параметрі URL (наприклад, `site.com?token=ab/cd+ef`), сервер міг би неправильно прочитати дані.

**Рішення (URL Safe режим):** Наш перемикач активує варіант **Base64URL** (згідно з RFC 4648), який виконує такі зміни:

- `+` змінюється на `-` (дефіс).
- `/` змінюється на `_` (підкреслення).
- Наприкінці видаляються символи `=` (заповнення), які не потрібні в URL.

---

## Міф: Base64 — це не шифрування!

Важливо усвідомити принципову різницю, яку часто плутають початківці:

1. **Кодування (Encoding - Base64):** Служить для передачі даних. Це як запакувати річ у валізу, щоб вона не розбилася дорогою. Будь-хто, хто знайде валізу, може її відкрити (декодувати) і побачити вміст. **Це небезпечно для таємних даних.**
2. **Шифрування (Encryption - AES, RSA):** Замикає дані ключем. Без ключа ви не отримаєте доступ до вмісту.
3. **Хешування (Hashing - SHA, MD5):** Односторонній процес (наприклад, для зберігання паролів). З результату неможливо отримати початковий текст.

*Якщо вам потрібно надіслати пароль або чутливу інформацію, самого Base64 недостатньо. Ви повинні використовувати HTTPS (SSL/TLS), який зашифрує передачу.*

---

## Часті запитання (FAQ)

### Що означають символи "=" в кінці рядка?

Це так зване "заповнення" (padding). Оскільки Base64 кодує дані групами по 3 символи, може статися, що довжина початкового тексту не ділиться на три. Символи \`=\` додаються в кінці, щоб декодер знав, скільки бітів потрібно ігнорувати в кінці.

### Чому декодований текст відображається як "зіпсований чай"?

Ймовірно, ви намагаєтеся декодувати дані, які не є текстом. Якщо рядок Base64 представляє стиснутий файл (ZIP), зображення або зашифровані дані, перетворення на текст (UTF-8) не має сенсу. Спробуйте дізнатися походження даних.

### Чи працює інструмент офлайн?

Так. Вся логіка перетворення написана на JavaScript і виконується безпосередньо у вашому браузері. Як тільки сторінка завантажиться, ви можете відключитися від інтернету, і інструмент все одно працюватиме. Ваші дані нікуди не надсилаються.

## Other languages

- Čeština (cs): [Base64 Encoder a Decoder](https://acrafto.com/cs/base64-decoder-encoder/) ([Markdown](https://acrafto.com/cs/base64-decoder-encoder/index.md))
- Slovenčina (sk): [Base64 kódovač a dekódovač](https://acrafto.com/sk/base64-kodovac-dekodovac-online/) ([Markdown](https://acrafto.com/sk/base64-kodovac-dekodovac-online/index.md))
- English (en): [Base64 Encoder and Decoder](https://acrafto.com/en/base64-encoder-decoder/) ([Markdown](https://acrafto.com/en/base64-encoder-decoder/index.md))
- Deutsch (de): [Base64 Encoder und Decoder](https://acrafto.com/de/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/de/base64-encoder-decoder-online/index.md))
- Français (fr): [Encodeur et décodeur Base64](https://acrafto.com/fr/encodeur-decodeur-base64/) ([Markdown](https://acrafto.com/fr/encodeur-decodeur-base64/index.md))
- Español (es): [Codificador y decodificador Base64](https://acrafto.com/es/codificador-base64-decodificador-online/) ([Markdown](https://acrafto.com/es/codificador-base64-decodificador-online/index.md))
- Italiano (it): [Encoder e decoder Base64](https://acrafto.com/it/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/it/encoder-decoder-base64-online/index.md))
- Português (pt): [Codificador e decodificador Base64](https://acrafto.com/pt/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/pt/encoder-decoder-base64-online/index.md))
- Nederlands (nl): [Base64 encoder en decoder](https://acrafto.com/nl/base64-encoder-decoder/) ([Markdown](https://acrafto.com/nl/base64-encoder-decoder/index.md))
- Polski (pl): [Koder i dekoder Base64](https://acrafto.com/pl/koder-dekoder-base64-online/) ([Markdown](https://acrafto.com/pl/koder-dekoder-base64-online/index.md))
- Română (ro): [Base64 encoder și decoder](https://acrafto.com/ro/codor-decodor-base64/) ([Markdown](https://acrafto.com/ro/codor-decodor-base64/index.md))
- Magyar (hu): [Base64 kódoló és dekódoló](https://acrafto.com/hu/base64-kodolo-dekodolo-online/) ([Markdown](https://acrafto.com/hu/base64-kodolo-dekodolo-online/index.md))
- Ελληνικά (el): [Κωδικοποίηση και αποκωδικοποίηση Base64](https://acrafto.com/el/base64-encoder-decoder/) ([Markdown](https://acrafto.com/el/base64-encoder-decoder/index.md))
- Български (bg): [Base64 енкодер и декодер](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/) ([Markdown](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/index.md))
- Hrvatski (hr): [Base64 koder i dekoder](https://acrafto.com/hr/base64-koder-dekoder/) ([Markdown](https://acrafto.com/hr/base64-koder-dekoder/index.md))
- Slovenščina (sl): [Base64 kodirnik in dekodirnik](https://acrafto.com/sl/base64-kodirnik-dekodirnik/) ([Markdown](https://acrafto.com/sl/base64-kodirnik-dekodirnik/index.md))
- Eesti (et): [Base64 kodeerija ja dekodeerija](https://acrafto.com/et/base64-teisendaja/) ([Markdown](https://acrafto.com/et/base64-teisendaja/index.md))
- Latviešu (lv): [Base64 kodētājs un dekodētājs](https://acrafto.com/lv/base64-kodetajs-dekodetajs/) ([Markdown](https://acrafto.com/lv/base64-kodetajs-dekodetajs/index.md))
- Lietuvių (lt): [Base64 koduotuvas ir dekoduotuvas](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/) ([Markdown](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/index.md))
- Svenska (sv): [Base64 encode och decode](https://acrafto.com/sv/base64-kodare-avkodare-online/) ([Markdown](https://acrafto.com/sv/base64-kodare-avkodare-online/index.md))
- Dansk (da): [Base64 encoder og dekoder](https://acrafto.com/da/base64-encoder-dekoder-online/) ([Markdown](https://acrafto.com/da/base64-encoder-dekoder-online/index.md))
- Suomi (fi): [Base64-kooderi ja -dekooderi](https://acrafto.com/fi/base64-kooderi-dekooderi/) ([Markdown](https://acrafto.com/fi/base64-kooderi-dekooderi/index.md))
- Norsk (no): [Base64-enkoder og -dekoder](https://acrafto.com/no/base64-enkoder-dekoder/) ([Markdown](https://acrafto.com/no/base64-enkoder-dekoder/index.md))
- Русский (ru): [Base64 кодировщик и декодировщик](https://acrafto.com/ru/base64-koder-dekoder/) ([Markdown](https://acrafto.com/ru/base64-koder-dekoder/index.md))
- Српски (sr): [Base64 enkoder i dekoder](https://acrafto.com/sr/base64-enkoder-dekoder-online/) ([Markdown](https://acrafto.com/sr/base64-enkoder-dekoder-online/index.md))
- Македонски (mk): [Base64 енкодер и декодер](https://acrafto.com/mk/base64-converter/) ([Markdown](https://acrafto.com/mk/base64-converter/index.md))
- Bosanski (bs): [Base64 koder i dekoder](https://acrafto.com/bs/base64-koder-dekoder/) ([Markdown](https://acrafto.com/bs/base64-koder-dekoder/index.md))
- Shqip (sq): [Base64 kodues dhe dekodues](https://acrafto.com/sq/kodues-dekodues-base64-online/) ([Markdown](https://acrafto.com/sq/kodues-dekodues-base64-online/index.md))
- Türkçe (tr): [Base64 kodlayıcı ve çözücü](https://acrafto.com/tr/base64-kodlayici-cozucu-online/) ([Markdown](https://acrafto.com/tr/base64-kodlayici-cozucu-online/index.md))
- 日本語 (ja): [Base64エンコード・デコード](https://acrafto.com/ja/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ja/base64-encoder-decoder/index.md))
- 한국어 (ko): [Base64 인코딩 디코딩](https://acrafto.com/ko/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ko/base64-encoder-decoder/index.md))
- العربية (ar): [ترميز وفك ترميز Base64](https://acrafto.com/ar/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ar/base64-encoder-decoder/index.md))
- हिन्दी (hi): [Base64 एन्कोडर और डिकोडर](https://acrafto.com/hi/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/hi/base64-encoder-decoder-online/index.md))
- Bahasa Indonesia (id): [Base64 encode dan decode](https://acrafto.com/id/konverter-base64-online/) ([Markdown](https://acrafto.com/id/konverter-base64-online/index.md))
- Tiếng Việt (vi): [Mã hóa và giải mã Base64](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/) ([Markdown](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/index.md))
- ไทย (th): [เข้ารหัสและถอดรหัส Base64](https://acrafto.com/th/base64-encoder-decoder/) ([Markdown](https://acrafto.com/th/base64-encoder-decoder/index.md))
- עברית (he): [קידוד ופענוח Base64](https://acrafto.com/he/base64-encoder-decoder/) ([Markdown](https://acrafto.com/he/base64-encoder-decoder/index.md))
