# Base64 енкодер и декодер

> Онлайн Base64 енкодер и декодер за текст. Поддържа UTF-8 (вкл. български), URL-safe формат. Обяснява принципа. Кодира и декодира бързо, лесно, безплатно.

URL: https://acrafto.com/bg/base64-enkoder-dekoder-onlain/

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 0L/QvtGC0YDQtdCx0LjRgtC10Ls60L/QsNGA0L7Qu9Cw` Зад този код се крие просто свързано потребителско име и парола във формат `потребител:парола`. Нашият инструмент ви позволява лесно да генерирате или проверявате тези хедъри.

### 2\. JSON Web Токени (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), който извършва следните промени:

- `+` се променя на `-` (тире).
- `/` се променя на `_` (долна черта).
- В края се премахват символите `=` (допълване/padding), които не са необходими в 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))
- 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))
- Українська (uk): [Base64 кодер і декодер](https://acrafto.com/uk/base64-koder-dekoder-onlajn/) ([Markdown](https://acrafto.com/uk/base64-koder-dekoder-onlajn/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))
