Base64 Encoder / Decoder

[ BASE64 ]
TWFidWhheSEg4oKxMSwyMzQuNTY=
Bytes papasok20
Karakter palabas28
Overhead+40%

The classic alphabet. Percent-encode it before putting it in a URL.

18 characters is 20 bytes in UTF-8 — anything outside plain ASCII takes two to four bytes each.
[ ANO ITO ]

Isinusulat muli ng Base64 ang kahit anong bytes gamit ang 64 na naipapakitang karakter, para makadaan sila sa isang bagay na teksto lamang ang dala — isang URL, email header, JSON string, o HTML attribute.

Ginagawa munang UTF-8 bytes ang teksto, at ang bytes ang siyang ini-encode. Iyon ang ibig sabihin ng bawat ibang implementasyon sa "Base64 ng isang string", at iyon ang dahilan kung bakit ligtas dito ang tandang piso, ang ñ at ang emoji. Ang function ng browser na pinagpapatungan ng karamihan sa online na tool ay Latin-1 lamang: nagkakamali ito sa anumang lampas sa U+00FF, at ang ₱ ay U+20B1.

Pabaligtad ding tumatakbo ang pag-decode, may isang pagtanggi. Kapag hindi wastong UTF-8 ang bytes — dahil larawan o compressed na file ang idinikit mo — hindi ito ipapakita ng pahina bilang teksto. Ginagawa itong hanay ng replacement character ng mapagbigay na decoder, na parang sagot pero hindi. Bilang ng bytes at hex preview ang makukuha mo sa halip.

[ MGA TANONG ]

Encryption ba ang Base64?

Hindi, at ito ang pagkakamaling mahalaga. Ang Base64 ay paraan ng pagsulat ng bytes gamit ang 64 na naipi-print na karakter para makaligtas sila sa daluyang teksto lang ang dala — header ng email, data URL, string ng JSON. Kayang i-decode ito ninuman sa isang segundo, pati rito sa pahinang ito. Huwag itong gamitin para itago ang password, API key o anumang hindi mo ilalathala.

Bakit nasira ang ₱ sign ko sa ibang tool?

Dahil naka-encode ito bilang Latin-1 at hindi UTF-8. Isang karakter ang ₱ pero tatlong byte, at tinatanggihan agad ng browser function na pinagbatayan ng karamihan sa mga tool ang anumang lampas 255. Ini-encode nito ang UTF-8 na bytes, kaya buo ang ₱, ñ, Baybayin at emoji pagkatapos ng balikan.

Ano ang pagkakaiba ng dalawang alphabet?

Ang huling dalawang karakter lamang. Gumagamit ang karaniwang Base64 ng + at /, na pareho may kahulugan sa loob ng URL at kailangang i-escape. Gumagamit ang URL-safe na alphabet ng - at _ para maipasok ang resulta sa link o pangalan ng file nang walang binabago. Wala nang ibang nagbabago, at nade-decode ng pahinang ito ang alinman nang hindi sinasabi kung alin.

Bakit mas mahaba ng ikatlo ang naka-encode kong teksto?

Dahil ang tatlong byte ay isinusulat na apat na karakter. 33% na pagtaas iyon, dagdag ang hanggang dalawang padding na karakter. Iyon ang kapalit ng paggamit lamang ng mga karakter na hindi nasisira kapag kinopya, ni-paste at ipinadala sa email.

Puwede ba akong mag-paste ng may line breaks?

Oo. Binabalot ng email attachment ang Base64 sa 76 karakter kada linya, at nagdaragdag ng sariling putol ang pagkopya mula sa terminal. Hindi pinapansin ang espasyo sa pag-decode, at sinasabi ng pahina kapag may hindi nitong pinansin.

Sabi nito hindi teksto ang bytes ko. Ano ang ibig sabihin niyon?

May na-decode kang hindi kailanman teksto — larawan, PDF, naka-compress na file. Sa halip na ipakita sa iyo ang hanay ng mga pamalit na karakter na mukhang sirang sagot, ipinapakita ng pahina ang bilang ng byte at ang mga unang byte sa hex para makita mo kung ano talaga ito.

[ PAANO ITO NAG-E-ENCODE ]
Ang tatlong byte ay nagiging apat na karakter
M a n 3 bytes = 24 bits
010011 010110 000101 101110 4 na grupo ng 6
T W F u 4 na karakter
[ BAKIT ANG MGA = ]

Hindi nahahati nang pantay ang anim na bit sa walo, kaya ang habang hindi multiplo ng tatlo ay nag-iiwan ng bahagyang grupo. Sinasabi ng padding kung ilang byte talaga ang laman ng huling grupo: isang = ay dalawang byte, dalawa ay isa. May mga sistemang inaalis ito, kaya nagde-decode ang pahina mayroon man o wala.

[ HALIMBAWA ]
f Zg==
fo Zm8=
foo Zm9v
4oKx

Ang unang tatlo ay ang test vectors ng RFC 4648. Ang pang-apat ay isang karakter at tatlong byte, at ito ang sumisira sa Latin-1 na encoder.

[ SUSUNOD ]
43JSON FormatterSuriin at ayusin ang dokumento, kasama kung nasaan ang kamalian
42Gumawa ng PasswordCryptographic na random, at matapat na iniuulat ang entropy
41Gumawa ng QR CodeI-encode ang link o detalye ng Wi-Fi bilang code na mababasa
39Converter ng YunitHaba, timbang, temperatura at apat pa
[ MAHALAGA ]

Ang Base64 ay encoding, hindi encryption — mababasa ninumang makakita ang anumang ini-encode mo rito. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.