# Base64 kodētājs un dekodētājs

> Uzlabots rīks teksta kodēšanai un dekodēšanai Base64 formātā. Risina UTF-8 problēmas, atbalsta URL-drošu formātu. Tiešsaistē un pilnīgi bez maksas.

URL: https://acrafto.com/lv/base64-kodetajs-dekodetajs/

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.

Vai nepieciešams pārveidot lasāmu tekstu Base64 formātā izmantošanai HTTP galvenēs, vai arī atšifrēt API marķiera saturu? Mūsu **Base64 teksta kodētājs un dekodētājs** ir specializēts rīks darbam ar teksta virknēm, kas tiek galā arī ar sarežģītībām, piemēram, diakritiskajām zīmēm vai speciālajiem simboliem.

> **Strādājat ar attēliem?**  
> Ja jūsu kods sākas ar `data:image/png...` vai vēlaties pārveidot failu par tekstu, šis rīks parādīs tikai bezjēdzīgus simbolus. Izmantojiet mūsu specializēto rīku attēlu konvertēšanai.

## Kā darbojas Base64 formāts?

Daudzi cilvēki ikdienā izmanto Base64, bet retais zina, kā tas darbojas “zem pārsega”. Tā nav maģija, bet gan vienkārša bitu matemātika.

Parasts teksts datorā tiek glabāts kā 8 biti (1 baits). Base64 tomēr izmanto “alfabētu” ar 64 rakstzīmēm (`A-Z`, `a-z`, `0-9`, `+`, `/`). Tā kā `2^6 = 64`, viena Base64 rakstzīme precīzi atspoguļo **6 bitus** informācijas.

**Konvertēšanas process (Algoritms):**

1. Tiek ņemtas trīs jūsu teksta rakstzīmes (3 × 8 biti = 24 biti).
2. Šie 24 biti tiek sadalīti četrās grupās pa 6 bitiem.
3. Katrai grupai tiek piešķirta rakstzīme no Base64 tabulas.

**Sekas:** Tā kā mēs no 3 rakstzīmēm izveidojam 4 rakstzīmes, iegūtā Base64 virkne vienmēr ir aptuveni par **33 % garāka** nekā sākotnējais teksts.

## Rakstzīmju kopas problēma: Kāpēc parastie Base64 konvertētāji bojā latviešu valodu?

Ja esat kādreiz mēģinājis kodēt vārdu “Žagata” pārlūkprogrammas konsolē, izmantojot funkciju `btoa('Žagata')`, visticamāk, saņēmāt kļūdu: *String contains characters outside of the Latin1 range.*

Base64 sākotnēji tika izstrādāts 7 bitu ASCII rakstzīmēm. Tomēr latviešu valoda, emocijzīmes un citi speciālie simboli (UTF-8) atmiņā aizņem vairāk baitu (multibaitu rakstzīmes).

- Burts `a` = 1 baits.
- Burts `š` = 2 baiti.
- Emocijzīme 🚀 = 4 baiti.

Mūsu rīks atrisina šo problēmu. Pirms Base64 kodēšanas mēs pareizi pārveidojam tekstu par UTF-8 baitu secību. Pateicoties tam, varat droši kodēt JSON objektus, latviešu tekstus un mūsdienu simbolus, neriskējot ar datu bojājumiem.

## Kur tiek izmantota Base64 teksta kodēšana?

Lai gan Base64 attēli galvenokārt tiek izmantoti ievietošanai CSS/HTML, teksta Base64 ir pavisam cits pielietojums aizmugures sistēmās:

### 1\. HTTP pamata autentifikācija

Kad piesakāties API, galvene bieži izskatās šādi: `Authorization: Basic bGlldG90xIFqczpwYXJvbGU=` Aiz šī koda slēpjas vienkārši apvienots lietotājvārds un parole formātā `lietotājs:parole`. Mūsu rīks ļaus jums viegli ģenerēt vai pārbaudīt šīs galvenes.

### 2\. JSON tīmekļa marķieri (JWT)

Mūsdienu tīmekļa lietojumprogrammas pieteikšanās procesam izmanto tā sauktos JWT. Šāds marķieris izskatās kā trīs garas virknes, atdalītas ar punktu. Datu daļa (Payload) ir parasts JSON objekts, kas kodēts Base64 formātā.

- **Padoms:** Mēģiniet šeit ievietot savu JWT marķiera vidējo daļu un to dekodēt. Jūs redzēsiet precīzi, kādus datus lietojumprogramma par jums reģistrē (piemēram, lietotāja ID, derīguma termiņš).

### 3\. Konfigurācijas faili (Kubernetes Secrets)

Platformas, piemēram, Kubernetes, glabā slepenus datus (Secrets) konfigurācijas YAML failos tieši Base64 formātā. Tā nav šifrēšana, bet gan veids, kā teksta failā saglabāt binārus datus vai tekstu ar problemātiskām rakstzīmēm (jaunas rindiņas, pēdiņas).

## Kas ir “URL droša Base64 kodēšana” un kāpēc tas ir svarīgi?

Standarta Base64 alfabēts satur rakstzīmes `+` (pluss) un `/` (slīpsvītra). Abām šīm rakstzīmēm URL adresēs ir īpaša nozīme:

- `/` atdala direktorijus.
- `+` bieži tiek interpretēts kā atstarpe.

Ja jūs sūtītu standarta Base64 URL parametrā (piemēram, `site.com?token=ab/cd+ef`), serveris varētu datus nolasīt nepareizi.

**Risinājums (URL drošais režīms):** Mūsu slēdzis aktivizē **Base64URL** variantu (saskaņā ar RFC 4648), kas veic šādas izmaiņas:

- `+` tiek mainīts uz `-` (domuzīme).
- `/` tiek mainīts uz `_` (apakšsvītra).
- Beigās tiek noņemtas rakstzīmes `=` (polsterējums), kas URL nav vajadzīgas.

---

## Mīts: Base64 nav šifrēšana!

Ir svarīgi apzināties būtisko atšķirību, ko iesācēji bieži jauc:

1. **Kodēšana (Encoding - Base64):** Kalpo datu pārsūtīšanai. Tas ir kā iesaiņot priekšmetu koferī, lai tas nesaplīstu ceļā. Ikviens, kurš atrod koferi, var to atvērt (dekodēt) un redzēt saturu. **Tas nav droši slepeniem datiem.**
2. **Šifrēšana (Encryption - AES, RSA):** Bloķē datus ar atslēgu. Bez atslēgas saturam nevar piekļūt.
3. **Hešošana (Hashing - SHA, MD5):** Vienvirziena process (piemēram, paroļu glabāšanai). No rezultāta nevar iegūt sākotnējo tekstu.

*Ja jums jānosūta parole vai sensitīvs dati, ar Base64 vien nepietiek. Jums jāizmanto HTTPS (SSL/TLS), kas šifrē pārsūtīšanu.*

---

## Bieži uzdotie jautājumi (BUJ)

### Ko nozīmē simboli "=" virknes beigās?

Tas ir tā sauktais "polsterējums" (padding). Tā kā Base64 kodē datus grupās pa 3 rakstzīmēm, var gadīties, ka sākotnējā teksta garums nav dalāms ar trīs. Simboli \`=\` tiek pievienoti beigās, lai dekodētājs zinātu, cik bitu ignorēt beigās.

### Kāpēc dekodētais teksts tiek parādīts kā "izkaisīta tēja" (nesaprotams)?

Visticamāk, jūs mēģināt dekodēt datus, kas nav teksts. Ja Base64 virkne attēlo saspiestu failu (ZIP), attēlu vai šifrētus datus, konvertēšana uz tekstu (UTF-8) nav jēgpilna. Mēģiniet noskaidrot datu izcelsmi.

### Vai rīks darbojas bezsaistē?

Jā. Visa konvertēšanas loģika ir uzrakstīta JavaScript valodā un darbojas tieši jūsu pārlūkprogrammā. Tiklīdz lapa ir ielādēta, varat atvienoties no interneta un rīks joprojām darbosies. Jūsu dati netiek nosūtīti nekur.

## 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))
- 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))
