Kas ir šis rīks?
Base64 ir kodēšanas shēma, kas binārus vai teksta datus pārvērš 64 drošu ASCII simbolu kopā (A–Z, a–z, 0–9, + un /). To izmanto visur programmatūrā: attēlu iegulšanai HTML/CSS, HTTP Basic autentifikācijas galvenēs, e-pasta pielikumos (MIME), JSON Web Token, kā arī API datu paketēs, kurām jāpaiet cauri kanāliem, kas atbalsta tikai tekstu.
Svarīgi: Base64 ir kodēšana, nevis šifrēšana. Ikviens to var dekodēt. Tā mērķis ir padarīt datus drošus pārsūtīšanai sistēmās, kas saprot tikai tekstu — nevis saglabāt tos slepenus.
Base64 formāls apraksts atrodams RFC 4648, kurā definēts arī URL drošais variants, ko lieto JWT un tīmekļa API: tas + aizstāj ar -, bet / ar _, lai kodētā virkne varētu pārvietoties URL bez procentkodēšanas.
Kāpēc to izmantot?
- Dekodē API tokenus, JWT segmentus un autentifikācijas galvenes, lai redzētu, kas tajos ir.
- Kodē tekstu datu URI, konfigurācijas failiem vai HTTP galvenēm.
- UTF-8 drošs: emocijzīmes un ne-latīņu rakstzīmes kodējas un dekodējas pareizi.
- 100% privāti — pārveide notiek tavā pārlūkā, nekas netiek augšupielādēts.
- Bezmaksas, bez pieteikšanās, bez izmēra ierobežojumiem.
Kā to lietot
- Ieraksti vai ielīmē savu saturu ievades laukā.
- Nospied "Encode", lai pārvērstu tekstu Base64, vai "Decode", lai Base64 pārvērstu atpakaļ tekstā.
- Ja dekodēšana neizdodas, ievade nav derīgs Base64 — pārbaudi, vai netrūkst rakstzīmju vai nav lieku atstarpju.
- Nospied "Copy", lai nokopētu rezultātu.
Piemērs
Ievade
Hello, CodeKitHub! 你好 👋Izvade
SGVsbG8sIENvZGVLaXRIdWIhIOS9oOWlvSDwn5GLPamani, kā ķīniešu rakstzīmes un emocijzīme pārdzīvo pilnu ceļu turp un atpakaļ — tā ir UTF-8 drošības daļa.
Praktiski padomi
- JWT tokeni ir trīs ar punktiem savienoti Base64 segmenti — dekodē pirmos divus (galveni un lietderīgo slodzi) atsevišķi, lai tos lasītu; trešais ir binārs paraksts un izskatīsies kā troksnis.
- Ja dekodēšana neizdodas kādam JWT segmentam, tas ir base64url kodējums: vispirms aizstāj - ar + un _ ar / (standarta rīki sagaida +/ alfabētu).
- Atstarpes un rindu pārtraukumi Base64 virknē parasti ir nekaitīgi paliekas no e-pasta vai žurnāliem, taču trūkstošs beigu = aizpildījums bieži nav — pirms secināt, ka dati ir bojāti, pārbaudi garumu.
- Base64 palielina datu apjomu par ~33%. Maziem datu apjomiem tas nav problēma; attēliem, kas lielāki par dažiem KB, gandrīz vienmēr labāka izvēle ir reāls fails, nevis datu URI.
Reāli lietošanas gadījumi
Trīs gadījumi, kas cilvēkus šeit atved katru dienu: nolasīt, kas atrodas Authorization galvenē vai JWT, dekodēt tīmekļa āķa (webhook) vai API lietderīgās slodzes lauku, kas ieradies Base64 ietinumā (bieži JSON — formatē to pēc dekodēšanas), un ar roku izveidot datu URI vai Basic-Auth virkni, atkļūdojot.
Binārajiem datiem (attēliem, failiem) atceries — dekodējot kā tekstu, iegūsi nesakarīgu tekstu (mojibake). Dati var būt pilnīgi derīgi, tie vienkārši nav teksts. Bināro datu kodēšana/dekodēšana pieder kodam; šis rīks optimizēts teksta gadījumiem.
Kā diagnosticēt dekodēšanas kļūmi
Base64 dekodēšanas kļūmes gandrīz vienmēr izriet no vienas no trim, sakārtotām biežuma secībā, cēloņiem: ievade patiesībā bija base64url (izmanto - un _ nevis standarta + un /, izplatīts JWT un URL drošos kontekstos) un pirms standarta dekodēšanas šīs rakstzīmes jāaizstāj atpakaļ; virkne kaut kur tika apcirsta (kopēšana-ielīmēšana, kas palaida garām pēdējās rakstzīmes, vai žurnāla rinda, kas tika apcirsta), ko var atklāt, jo derīgas Base64 virknes garums vienmēr ir dalāms ar 4, kad ņem vērā aizpildījumu; vai kopēšanas laikā tika ievadītas svešas rakstzīmes (lieka atstarpe, nejauša jauna rinda, nejauši dubultota rakstzīme), tāpēc ielīmēšana tieši no oriģinālā avota, nevis atkārtota ievadīšana, vienmēr ir drošāka.
→ JSON formatētājs · URL Kodētājs / Dekodētājs · JWT dekodētājs
Biežāk uzdotie jautājumi
Vai Base64 ir šifrēšana?
Nē. Base64 ir atgriezeniska kodēšana, ko var dekodēt ikviens — tā nesniedz nekādu drošību. Ja jāaizsargā dati, izmanto īstu šifrēšanu (piemēram, AES); Base64 paredzēts tikai datu drošai pārsūtīšanai teksta veidā.
Kāpēc mans dekodētais rezultāts izskatās kā nesakarīgs teksts?
Vai nu ievade patiesībā nav Base64, tā ir apcirsta, vai sākotnējie dati bija binārs (piemēram, attēls), nevis teksts. Binārie dati netiks attēloti kā lasāmas rakstzīmes.
Kas ir = zīmes beigās?
Aizpildījums (padding). Base64 strādā 3 ievades baitu → 4 izvades rakstzīmju blokos. Kad ievades garums nedalās ar 3, viena vai divas = rakstzīmes aizpilda pēdējo bloku.
Vai šis rīks strādā ar emocijzīmēm un ķīniešu rakstzīmēm?
Jā. Tas vispirms kodē tekstu kā UTF-8 baitus, kas ir standarta pieeja. Vienkāršie rīki, kas tieši izmanto btoa(), neizdodas ar jebkuru rakstzīmi ārpus Latin-1 — šis rīks tā nedara.
Vai mani dati tiek kaut kur augšupielādēti?
Nē. Kodēšana un dekodēšana notiek pilnībā tavā pārlūkā ar JavaScript. Tavi dati nekad neatstāj tavu ierīci.