Base64 kodētājs / dekodētājs tiešsaistē

0 chars
0 chars

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 dXppdmF0ZWw6aGVzbG8= 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.