Base64 enkodeer en dekodeer
Skakel teks of 'n lêer om na Base64, of dekodeer Base64 terug na leesbare teks. Unicode word korrek hanteer, die URL-veilige alfabet is net een klik weg, en dekodering aanvaar albei alfabette, met of sonder opvulling.
0 karakters · 0 woorde · 0 reëls
0 karakters · 0 woorde · 0 reëls
Werk heeltemal in hierdie blaaieroortjie. Jou teks word nooit opgelaai of gestoor nie.
Die Base64-alfabet
Indeks → karakter uit RFC 4648. Die uitgeligte laaste twee verskil in die URL-veilige variant: 62 is + of -, 63 is / of _.
- 0A
- 1B
- 2C
- 3D
- 4E
- 5F
- 6G
- 7H
- 8I
- 9J
- 10K
- 11L
- 12M
- 13N
- 14O
- 15P
- 16Q
- 17R
- 18S
- 19T
- 20U
- 21V
- 22W
- 23X
- 24Y
- 25Z
- 26a
- 27b
- 28c
- 29d
- 30e
- 31f
- 32g
- 33h
- 34i
- 35j
- 36k
- 37l
- 38m
- 39n
- 40o
- 41p
- 42q
- 43r
- 44s
- 45t
- 46u
- 47v
- 48w
- 49x
- 50y
- 51z
- 520
- 531
- 542
- 553
- 564
- 575
- 586
- 597
- 608
- 619
- 62+ -
- 63/ _
Hoe lank die uitvoer word
Elke 3 invoergrepe word 4 karakters; 'n laaste groep van 1 of 2 grepe word in standaard Base64 met = opgevul en in die URL-veilige vorm sonder opvulling gelaat.
| Invoer | Grepe | Standaard | URL-veilig | Lengte |
|---|---|---|---|---|
U | 1 | VQ== | VQ | 4 |
Ul | 2 | VWw= | VWw | 4 |
Ult | 3 | VWx0 | VWx0 | 4 |
UltK | 4 | VWx0Sw== | VWx0Sw | 8 |
UltKi | 5 | VWx0S2k= | VWx0S2k | 8 |
UltKit | 6 | VWx0S2l0 | VWx0S2l0 | 8 |
Wat Base64 doen
Base64, omskryf in RFC 4648, skryf arbitrêre grepe met 64 drukbare ASCII-karakters: A–Z, a–z, 0–9, + en /. Elke groep van drie grepe (24 bisse) word in vier 6-bis-getalle verdeel, en elke getal kies een karakter uit die alfabet. As die invoerlengte nie 'n veelvoud van drie is nie, word die laaste groep met een of twee = tekens aangevul. Die resultaat is altyd ongeveer 33% groter as die invoer: 4 karakters vir elke 3 grepe.
Dit bestaan omdat baie kanale vir teks gebou is. E-pos (MIME), data:-URL's in HTML en CSS, JSON-velde wat beelde of sertifikate dra, en HTTP Basic-verifikasiekoppe gebruik almal Base64 om binêre data veilig te vervoer. Dit is nie enkripsie nie en versteek niks nie; ontsyfering vereis geen sleutel nie.
Unicode en die URL-veilige variant
Base64 enkodeer grepe, nie letters nie, dus moet teks eers in grepe omgeskakel word. Hierdie hulpmiddel gebruik altyd UTF-8, die enkodering waarop die web loop: é word twee grepe en 'n emoji vier. Die blaaier se ingeboude btoa-funksie alleen gee 'n fout by enige karakter bo U+00FF, en dis hoekom naïewe enkodeerders by aksente en emoji faal; hier gaan die teks eers deur TextEncoder, en ontsyfering keer dit om met TextDecoder. As ontsyferde grepe nie geldige UTF-8 is nie ('n beeld, 'n zip-lêer), wys die hulpmiddel dit as heksadesimaal in plaas van deurmekaar teks.
Standaard Base64 gebruik + en /, wat in URL's en lêernaam betekenis het. Die URL-veilige alfabet uit afdeling 5 van RFC 4648 vervang hulle met - en _, en die aanvulling word gewoonlik weggelaat. JSON Web Tokens gebruik presies hierdie vorm. Die ontsyferaar aanvaar albei alfabette en ontbrekende aanvulling, so jy kan enige een plak.
Lêers en beelde enkodeer
Kies 'n lêer en die hulpmiddel lees dit plaaslik met FileReader en gee die Base64 daarvan terug, of 'n volledige data:-URL met die lêer se MIME-tipe, gereed om in 'n img-etiket of 'n CSS-agtergrond te plak. Ingebedde beelde spaar 'n HTTP-versoek, maar word 'n derde groter en kan nie apart gekas word nie, so hulle pas by klein ikone eerder as foto's. Vir beelde met 'n voorskou en gereedgemaakte HTML- en CSS-brokkies, gebruik Beeld na Base64.
Gereelde vrae
- Waarom is die Base64-uitvoer langer as my invoer?
- Elke 3 grepe word 4 karakters, so die uitvoer is ongeveer 4/3 van die invoer se grootte, plus tot twee aanvulkarakters. Nie-ASCII-teks is nog langer, omdat UTF-8 twee tot vier grepe per karakter gebruik.
- Wat beteken die =-tekens aan die einde?
- Aanvulling. Dit maak die uitvoerlengte 'n veelvoud van vier wanneer die invoerlengte nie 'n veelvoud van drie is nie. Een = beteken die laaste groep het twee grepe gehad, twee = beteken dit het een greep gehad.
- Waarom misluk dekodering met 'n fout oor 'n ongeldige karakter?
- Die invoer bevat iets buite die alfabet, soos 'n spasie binne 'n woord, 'n aanhalingsteken, of 'n % van URL-enkodering. Reëlbreuke en ontbrekende aanvulling word geduld; ander karakters nie.
- Is dit veilig om 'n wagwoord in Base64 te enkodeer?
- Base64 bied geen beskerming nie. HTTP Basic-verifikasie stuur user:password in Base64, en dis hoekom dit net oor HTTPS gebruik moet word. Gebruik regte enkripsie of hashing om geheime te beskerm.
- Wat is die verskil tussen Base64 en Base64url?
- Net twee karakters en die aanvulling: Base64url gebruik - en _ in plaas van + en / en laat gewoonlik = weg, sodat die resultaat sonder ontsnapping in URL's en lêernaam kan wees.