← Alle gereedskap

Base64 enkodeer en dekodeer

Enkodeer en dekodeer Base64 onmiddellik in jou blaaier. Leer wat Base64 is, waarom dit 33% grootte byvoeg, en waarom dit enkodering en nie enkripsie is nie.

Wat Base64 is en waarom dit bestaan

Base64 is 'n binêr-na-teks-enkoderingskema. Dit neem rou grepe - die soort data waaruit beelde, argiewe, kriptografiese sleutels, of enigiets anders wat nie gewone leesbare teks is nie bestaan - en herskryf hulle met 'n klein, veilige alfabet van 64 drukbare karakters: die 26 hoofletters A-Z, die 26 kleinletters a-z, die tien syfers 0-9, en twee ekstra simbole, gewoonlik + en /. 'n Gelykheidsteken word gebruik vir opvulling aan die einde. Omdat elke karakter wat dit produseer gewone ASCII is, kan die resultaat deur stelsels beweeg wat slegs ontwerp is om teks te hanteer.

Dit is die hele rede waarom Base64 uitgevind is. Baie ouer protokolle - e-pos is die klassieke voorbeeld - aanvaar dat die inhoud wat hulle dra teks is. As jy hulle rou binêre data gee, word sommige grepe verminak, gestroop, of as beheerkarakters geïnterpreteer, en die data kom korrup aan. Base64 omseil die probleem deur die grepe om te skakel na 'n vorm wat enige teksveilige kanaal ongeskonde sal deurlaat. Die oorspronklike data kan dan presies aan die ander kant gerekonstrueer word.

Abstrakte gloeiende stroom binêre data wat omskakel na 'n teks-karakterstroom in donker indigo met sianies en goue lig
Base64 herskep rou grepe in 'n veilige, teksvriendelike karakterstroom.

Hoe die omskakeling werk

Meganies groepeer Base64 die toevoer in stukke van drie grepe - dit is 24 bisse - en sny daardie selfde 24 bisse dan weer op in vier groepe van ses bisse elk. Ses bisse kan 64 moontlike waardes verteenwoordig, wat presies waarom die alfabet 64 karakters het. Dus word drie grepe toevoer altyd vier karakters uitvoer. Wanneer die toevoerlengte nie 'n netjiese veelvoud van drie is nie, vul die enkodeerder die laaste groep op met een of twee =-karakters sodat 'n dekodeerder weet waar die werklike data eindig.

Hierdie vier-vir-drie-verhouding is ook waar die beroemde grootte-boete vandaan kom: Base64-uitvoer is sowat 33% groter as die oorspronklike data. As die geënkodeerde teks in vaste-breedte lyne toegedraai word, soos e-posstandaarde dikwels vereis, betaal jy 'n paar ekstra persent bo-op daardie vir die lynbreuke. Die oorhoofse koste is die prys van verenigbaarheid, en vir die meeste gebruike is dit 'n regverdige ruil.

Waar jy Base64 raakloop

Sodra jy weet waarna om te soek, verskyn Base64 orals in alledaagse rekenaarwerk:

  • Data-URI's. 'n Klein beeld of skrif kan direk in HTML of CSS ingebed word met 'n data:-URI, met die lêerinhoud uitgeskryf as Base64. Die blaaier dekodeer dit inlyn, wat 'n aparte netwerkversoek bespaar.
  • E-posaanhegsels. MIME, die standaard wat e-pos toelaat om lêers te dra, steun op Base64 om binêre aanhegsels deur 'n teks-slegs-posstelsel te beweeg sonder skade.
  • HTTP Basiese verifikasie. Die bekende Authorization: Basic ...-kop is bloot 'n gebruikersnaam en wagwoord saamgevoeg deur 'n dubbelpunt en Base64-geënkodeer - wat presies waarom Basiese verifikasie altyd oor HTTPS moet loop.
  • Tokens en konfigurasie. JSON Web Tokens, sertifikate, SSH-sleutels, en talle konfigurasiewaardes word as Base64 gestoor of oorgedra sodat hulle knip-en-plak en teks-gebaseerde stoor oorleef.

Enkodering is nie enkripsie nie

Dit is die enkele belangrikste ding om te verstaan, en dit laat beginners en ervare ontwikkelaars gelyk struikel. Base64 is nie enkripsie nie en bied hoegenaamd geen sekuriteit nie. Daar is geen geheime sleutel nie, geen wagwoord nie, en niks privaat daaraan nie. Die transformasie is heeltemal publiek en volkome omkeerbaar: enigiemand wat 'n Base64-string sien, kan dit binne 'n sekonde terug dekodeer na die oorspronklike grepe, met 'n instrument presies soos hierdie een.

Base64 is dus 'n swak wegsteekplek vir wagwoorde, API-sleutels, of enige sensitiewe waarde. As 'n string bloot lyk asof dit deurmekaar geskommel is, maak dit dit nie beskerm nie. Enkripsie, daarteenoor, transformeer data met 'n geheime sleutel sodat slegs iemand wat daardie sleutel het, dit kan lees. Die twee los verskillende probleme op: enkripsie beskerm vertroulikheid, Base64 beskerm verenigbaarheid. Hulle word dikwels saam gebruik - jy mag data met AES enkripteer en dan die syferteks Base64-enkodeer sodat dit deur 'n tekskanaal kan beweeg - maar een is nooit 'n plaasvervanger vir die ander nie.

'n Abstrakte beeld wat oplos in 'n vloeiende stroom gloeiende karakters en weer saamgestel word, indigonavy met sianies en goue lig
Enkodering en dekodering is volkome omkeerbaar - en bied geen geheimhouding nie.

Enkodeer vs dekodeer

Die twee rigtings is eenvoudige spieëlbeelde. Enkodering neem jou oorspronklike teks of binêre data en produseer die Base64-karakterstring. Dekodering neem 'n Base64-string en rekonstrueer die presiese oorspronklike grepe. Ons instrument doen albei direk in jou blaaier - niks wat jy tik of plak word ooit na 'n bediener gestuur nie, sodat die bewerking heeltemal plaaslik en privaat is. Dit maak dit veilig om 'n token te dekodeer wat jy ontfout, of 'n stukkie te enkodeer wat jy wil inbed, sonder dat jou data die blad verlaat.

Vir verwante omskakelings, sien ons URL-enkodeer/dekodeer-instrument vir persent-enkodering, of die JWT-dekodeerder wanneer jy die Base64-segmente binne 'n token moet ondersoek. Jy sal hierdie langs die res van ons ontwikkelaarinstrumente vind.

Gereelde vrae

Is Base64 'n vorm van enkripsie?

Nee. Base64 is 'n enkodering, nie enkripsie nie. Dit gebruik geen sleutel nie en is volkome omkeerbaar deur enigiemand, sodat dit geen sekuriteit bied nie. Gebruik werklike enkripsie soos AES of RSA om sensitiewe data te beskerm.

Waarom maak Base64 data groter?

Base64 verander elke drie grepe toevoer in vier uitvoer-karakters, wat sowat 33% by die grootte voeg. As die uitvoer in vaste-lengte lyne verdeel word, voeg lynbreuke nog 'n paar persent bo-op daardie.

Watter karakters gebruik Base64?

Die standaardalfabet is die 26 hoofletters, 26 kleinletters, die syfers 0 tot 9, plus die simbole plus en skuinsstreep, met die gelykheidsteken gebruik vir opvulling aan die einde.

Kan ek wagwoorde veilig in Base64 stoor?

Nee. Base64 verander slegs hoe data lyk, nie wie dit kan lees nie. Enigiemand kan dit onmiddellik dekodeer. Wagwoorde moet met 'n sterk algoritme verhaas word, en geheime moet geënkripteer word.

Is hierdie Base64-instrument privaat?

Ja. Enkodering en dekodering vind heeltemal binne jou blaaier plaas. Niks wat jy invoer word opgelaai of na enige bediener gestuur nie, sodat jou data op jou eie toestel bly.

Wat is die verskil tussen enkodering en dekodering?

Enkodering skakel oorspronklike teks of binêre data om in 'n Base64-string. Dekodering keer dit om, en verander 'n Base64-string terug in die presiese oorspronklike grepe. Hulle is spieëlbewerkings.