Base64 Encoding

Gamit ang tool na Base64 Encoding, maaari mong i-encrypt ang text na iyong ipinasok gamit ang Base64 method. Kung gusto mo, maaari mong i-decode ang naka-encrypt na Base64 code gamit ang Base64 Decode tool.

Ano ang Base64 Encoding?

Ang Base64 Encoding ay isang encoding scheme na nagpapahintulot sa binary data na maihatid sa mga environment na gumagamit lamang ng ilang pinaghihigpitang pag-encode ng character (mga kapaligiran kung saan hindi lahat ng character code ay maaaring gamitin, tulad ng xml, html, script, instant messaging application). Ang bilang ng mga character sa scheme na ito ay 64, at ang bilang na 64 sa salitang Base64 ay nagmula dito.

Bakit Gumamit ng Base64 Encoding?

Ang pangangailangan para sa Base64 encoding ay nagmumula sa mga problemang lumitaw kapag ang media ay ipinadala sa raw binary format sa text-based na mga sistema. Dahil ang mga text-based na system (tulad ng e-mail) ay binibigyang-kahulugan ang binary data bilang isang malawak na hanay ng mga character, kabilang ang mga espesyal na command character, karamihan sa binary data na ipinadala sa transfer medium ay napagkakamalan ng mga system na ito at nawawala o nasira sa paghahatid. proseso.

Ang isang paraan ng pag-encode ng naturang binary data sa paraang makaiwas sa naturang mga problema sa paghahatid ay ang ipadala ang mga ito bilang plain ASCII text sa Base64 na naka-encode na format. Ito ay isa sa mga pamamaraan na ginagamit ng pamantayan ng MIME upang magpadala ng data maliban sa plain text. Maraming mga programming language, tulad ng PHP at Javascript, ang may kasamang Base64 encoding at decoding function upang bigyang-kahulugan ang data na ipinadala gamit ang Base64 encoding.

Base64 Encoding Logic

Sa Base64 encoding, 3 * 8 bits = 24 bits ng data na binubuo ng 3 bytes ay nahahati sa 4 na grupo ng 6 bits. Ang mga character na tumutugma sa mga decimal na halaga sa pagitan ng [0-64] ng 4 na 6-bit na pangkat na ito ay itinutugma mula sa Base64 na talahanayan upang i-encode. Ang bilang ng mga character na nakuha bilang resulta ng Base64 encoding ay dapat na isang multiple ng 4. Ang naka-encode na data na hindi isang multiple ng 4 ay hindi wastong Base64 data. Kapag nag-encode gamit ang Base64 algorithm, kapag kumpleto na ang pag-encode, kung ang haba ng data ay hindi multiple ng 4, ang "=" (equal) na character ay idaragdag sa dulo ng encoding hanggang sa ito ay multiple ng 4. Halimbawa, kung mayroon kaming 10-character na Base64 na naka-encode na data bilang resulta ng pag-encode, dalawang "==" ang dapat idagdag sa dulo.

Halimbawa ng Base64 Encoding

Halimbawa, kunin ang tatlong numero ng ASCII 155, 162 at 233. Ang tatlong numerong ito ay bumubuo ng binary stream ng 100110111010001011101001. Ang isang binary file tulad ng isang imahe ay naglalaman ng isang binary stream na gumagana para sa sampu o daan-daang libong mga zero at isa. Nagsisimula ang Base64 encoder sa pamamagitan ng paghahati sa binary stream sa mga pangkat ng anim na character: 100110 111010 001011 101001. Ang bawat isa sa mga pagpapangkat na ito ay isinalin sa mga numero 38, 58, 11, at 41. Ang anim na character na binary stream ay kino-convert sa pagitan ng binary (o basic). 2) sa decimal (base-10) na mga character sa pamamagitan ng pag-square sa bawat value na kinakatawan ng 1 sa binary array ng positional square. Simula mula sa kanan at lumipat sa kaliwa at nagsisimula sa zero, ang mga halaga sa binary stream ay kumakatawan sa 2^0, pagkatapos ay 2^1, pagkatapos ay 2^2, pagkatapos ay 2^3, pagkatapos ay 2^4, pagkatapos ay 2^ 5.

Narito ang isa pang paraan upang tingnan ito. Simula sa kaliwa, ang bawat posisyon ay nagkakahalaga ng 1, 2, 4, 8, 16 at 32. Kung ang slot ay may binary number 1, idagdag mo ang halagang iyon; kung ang slot ay may 0, ikaw ay nawawala. Binary array 100110 turns 38: 0 * 2 ^ 01 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 = 0 + 2 decimal + 4 + 0 + 0 + 32. Kinukuha ng base64 encoding ang binary string na ito at hinahati ito sa 6-bit na mga halaga 38, 58, 11 at 41. Sa wakas, ang mga numerong ito ay na-convert sa mga ASCII na character gamit ang Base64 encoding table.