Base64 Encode na Decode
Geuza maandishi au faili kuwa Base64, au fumbua Base64 kurudi kuwa maandishi yanayosomeka. Unicode hushughulikiwa ipasavyo, alfabeti salama kwa URL iko umbali wa mbofyo mmoja, na ufumbuaji hukubali alfabeti yoyote kati ya hizo mbili, ikiwa na au bila padding.
Herufi 0 · maneno 0 · mistari 0
Herufi 0 · maneno 0 · mistari 0
Inafanya kazi kabisa ndani ya kichupo hiki cha kivinjari. Maandishi yako hayapakiwi wala kuhifadhiwa.
Alfabeti ya Base64
Faharasa → herufi kutoka RFC 4648. Mbili za mwisho zilizoangaziwa hutofautiana katika toleo salama kwa URL: 62 ni + au -, 63 ni / au _.
- 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/ _
Matokeo yanakuwa marefu kiasi gani
Kila baiti 3 za ingizo huwa herufi 4; kundi la mwisho la baiti 1 au 2 hujazwa = katika Base64 ya kawaida na huachwa bila padding katika toleo salama kwa URL.
| Ingizo | Baiti | Ya kawaida | Salama kwa URL | Urefu |
|---|---|---|---|---|
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 |
Base64 hufanya nini
Base64, iliyofafanuliwa katika RFC 4648, huandika baiti zozote kwa kutumia herufi 64 za ASCII zinazoweza kuchapishwa: A–Z, a–z, 0–9, + na /. Kila kundi la baiti tatu (biti 24) hugawanywa kuwa nambari nne za biti 6, na kila nambari huchagua herufi moja kutoka kwenye orodha hiyo. Urefu wa data ya kuingiza usipokuwa kigawe cha tatu, kundi la mwisho hujazwa kwa alama moja au mbili za =. Matokeo huwa makubwa kwa takriban 33% kuliko data ya kuingiza: herufi 4 kwa kila baiti 3.
Ipo kwa sababu njia nyingi za mawasiliano zilitengenezwa kwa maandishi. Barua pepe (MIME), URL za data: ndani ya HTML na CSS, sehemu za JSON zinazobeba picha au vyeti, na vichwa vya uthibitishaji vya HTTP Basic zote hutumia Base64 kusafirisha data ya mfumo wa jozi kwa usalama. Si usimbaji fiche na haifichi chochote; kusimbua hakuhitaji ufunguo.
Unicode na toleo salama kwa URL
Base64 husimba baiti, si herufi, kwa hivyo maandishi lazima kwanza yabadilishwe kuwa baiti. Zana hii hutumia UTF-8 kila wakati, usimbaji ambao wavuti hutegemea: é huwa baiti mbili na emoji baiti nne. Kitendakazi cha btoa kilichojengewa ndani ya kivinjari peke yake hutoa hitilafu kwa herufi yoyote iliyo juu ya U+00FF, ndiyo maana visimbaji vya kawaida hushindwa kwenye vistari vya herufi na emoji; hapa maandishi hupitia TextEncoder kwanza, na kusimbua hurudisha kwa TextDecoder. Baiti zilizosimbuliwa zisipokuwa UTF-8 halali (picha, faili ya zip), zana huzionyesha kama heksadesimali badala ya maandishi yaliyoharibika.
Base64 ya kawaida hutumia + na /, ambazo zina maana katika URL na majina ya faili. Orodha salama kwa URL kutoka sehemu ya 5 ya RFC 4648 huzibadilisha na - na _, na ujazo kwa kawaida huondolewa. JSON Web Tokens hutumia muundo huu hasa. Kisimbuzi hukubali orodha zote mbili na ujazo uliokosekana, kwa hivyo unaweza kubandika yoyote.
Kusimba faili na picha
Chagua faili na zana huisoma ndani ya kifaa chako kwa FileReader kisha hurudisha Base64 yake, au URL kamili ya data: yenye aina ya MIME ya faili tayari kubandikwa kwenye lebo ya img au mandharinyuma ya CSS. Picha zilizopachikwa huokoa ombi moja la HTTP lakini hukua kwa theluthi na haziwezi kuhifadhiwa kwenye kache kivyake, kwa hivyo zinafaa aikoni ndogo kuliko picha za kamera. Kwa picha zenye hakikisho na vipande tayari vya HTML na CSS, tumia Picha kuwa Base64.
Maswali yanayoulizwa mara kwa mara
- Kwa nini matokeo ya Base64 ni marefu kuliko ingizo langu?
- Kila baiti 3 huwa herufi 4, kwa hivyo matokeo ni takriban 4/3 ya ukubwa wa data ya kuingiza, pamoja na hadi herufi mbili za ujazo. Maandishi yasiyo ya ASCII huwa marefu zaidi, kwa kuwa UTF-8 hutumia baiti mbili hadi nne kwa kila herufi.
- Alama za = mwishoni ni nini?
- Ujazo. Hufanya urefu wa matokeo kuwa kigawe cha nne wakati urefu wa data ya kuingiza si kigawe cha tatu. = moja humaanisha kundi la mwisho lilikuwa na baiti mbili, = mbili humaanisha lilikuwa na baiti moja.
- Kwa nini ufumbuaji unashindwa kwa hitilafu ya herufi batili?
- Data uliyoingiza ina kitu nje ya orodha ya herufi, kama nafasi ndani ya neno, nukuu, au % kutoka usimbaji wa URL. Mistari mipya na ujazo uliokosekana huvumiliwa; herufi nyingine hazivumiliwi.
- Je, ni salama kusimba nenosiri kwa Base64?
- Base64 haitoi ulinzi wowote. Uthibitishaji wa HTTP Basic hutuma user:password kwa Base64, ndiyo maana lazima utumike kupitia HTTPS pekee. Tumia usimbaji fiche halisi au hashing kulinda siri.
- Kuna tofauti gani kati ya Base64 na Base64url?
- Herufi mbili tu na ujazo: Base64url hutumia - na _ badala ya + na / na kwa kawaida huacha =, ili matokeo yaweze kukaa kwenye URL na majina ya faili bila kuhitaji kuepushwa.