Base64 eilučių kodavimas ir dekodavimas Python
„Base64“ koduotė naudojama baitams, kuriuose yra dvejetainių arba tekstinių duomenų, konvertuoti į ASCII simbolius. Kodavimas apsaugo nuo duomenų sugadinimo, kai jie perduodami arba apdorojami naudojant tik teksto sistemą. Šiame straipsnyje aptarsime „Base64“ kodavimą ir dekodavimą bei jo naudojimą dvejetainiams ir tekstiniams duomenims koduoti ir iššifruoti.
„Base64“ kodavimas:
Tai baitų konvertavimo į ASCII simbolius tipas. galimų Base64 simbolių sąrašas pateikiamas žemiau:
- 26 didžiosios raidės
- 26 mažosios raidės
- 10 skaičių
- + ir / naujoms eilutėms
Kiekvienas „Base64“ simbolis reiškia 6 duomenų bitus. taip pat svarbu pažymėti, kad jis nėra skirtas šifravimui dėl akivaizdžių priežasčių.
Norėdami konvertuoti eilutę į Base64 simbolį, turite atlikti šiuos veiksmus:
- Gaukite kiekvieno eilutės simbolio ASCII reikšmę.
- Apskaičiuokite 8 bitų dvejetainį ASCII reikšmių ekvivalentą
- Paverskite 8 bitų simbolių gabalėlį į 6 bitų gabalus, pergrupuodami skaitmenis
- Konvertuokite 6 bitų dvejetaines grupes į atitinkamas dešimtaines reikšmes.
- Naudokite Base64 kodavimo lentelę, kad sulygiuotumėte atitinkamas Base64 reikšmes kiekvienai dešimtainei reikšmei.
Žemiau esančiame paveikslėlyje pateikiama „Base64“ kodavimo lentelė.
Vaizdo šaltinis: Wikipedia
Python naudojimas eilutėms koduoti:Python programoje base64 modulis naudojamas duomenims koduoti ir dekoduoti. Pirma, eilutės konvertuojamos į baitus panašius objektus ir užkoduojamos naudojant modulį base64. Toliau pateiktame pavyzdyje parodyta, kad kodavimo eilučių įgyvendinimas nėra base64 simbolių.
Pavyzdys:
import> base64> > sample_string> => 'GeeksForGeeks is the best'> sample_string_bytes> => sample_string.encode(> 'ascii'> )> > base64_bytes> => base64.b64encode(sample_string_bytes)> base64_string> => base64_bytes.decode(> 'ascii'> )> > print> (f> 'Encoded string: {base64_string}'> )> |
Išvestis:
Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA==
Python naudojimas eilutėms iššifruoti:
„Base64“ eilutės dekodavimas yra visiškai priešingas kodavimui. Pirmiausia konvertuojame Base64 eilutes į nekoduotus duomenų baitus, po to konvertuojame į baitus panašų objektą į eilutę. Toliau pateiktame pavyzdyje vaizduojamas pirmiau pateikto pavyzdžio kodavimo eilutės išvesties dekodavimas.
Pavyzdys:
import> base64> > > base64_string> => ' R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA =='> base64_bytes> => base64_string.encode(> 'ascii'> )> > sample_string_bytes> => base64.b64decode(base64_bytes)> sample_string> => sample_string_bytes.decode(> 'ascii'> )> > print> (f> 'Decoded string: {sample_string}'> )> |
Išvestis:
Decoded string: GeeksForGeeks is the best