Coderen en decoderen van Base64-strings in Python

Coderen en decoderen van Base64-strings in Python

De Base64-codering wordt gebruikt om bytes met binaire of tekstgegevens om te zetten in ASCII-tekens. Codering voorkomt dat de gegevens beschadigd raken wanneer deze worden overgedragen of verwerkt via een systeem met alleen tekst. In dit artikel bespreken we Base64-codering en -decodering en het gebruik ervan voor het coderen en decoderen van binaire en tekstgegevens.

Base64-codering:
Het is een soort conversie van bytes naar ASCII-tekens. de lijst met beschikbare Base64-tekens vindt u hieronder:

  • 26 hoofdletters
  • 26 kleine letters
  • 10 nummers
  • + en / voor nieuwe regels

Elk Base64-teken vertegenwoordigt 6 bits aan gegevens. Het is ook belangrijk op te merken dat het om voor de hand liggende redenen niet bedoeld is voor codering.
Om een ​​string om te zetten in een Base64-teken moeten de volgende stappen gevolgd worden:

  • Haal de ASCII-waarde op van elk teken in de tekenreeks.
  • Bereken het 8-bits binaire equivalent van de ASCII-waarden
  • Converteer de 8-bits tekens in stukjes van 6 bits door de cijfers opnieuw te groeperen
  • Converteer de 6-bits binaire groepen naar hun respectieve decimale waarden.
  • Gebruik de Base64-coderingstabel om de respectieve Base64-waarden voor elke decimale waarde uit te lijnen.

De onderstaande afbeelding biedt ons een Base64-coderingstabel.

Afbeeldingsbron: Wikipedia

Python gebruiken om tekenreeksen te coderen:
In Python wordt de base64-module gebruikt om gegevens te coderen en decoderen. Eerst worden de strings omgezet in byte-achtige objecten en vervolgens gecodeerd met behulp van de base64-module. Het onderstaande voorbeeld laat zien dat de implementatie van coderingsreeksen geen base64-tekens is.

Voorbeeld:




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}'> )>

Uitgang:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Python gebruiken om tekenreeksen te decoderen:
Het decoderen van de Base64-reeks is precies het tegenovergestelde van dat van codering. Eerst converteren we de Base64-strings naar ongecodeerde databytes, gevolgd door conversie naar bytes-achtig object naar een string. Het onderstaande voorbeeld toont de decodering van de bovenstaande voorbeeldcoderingsreeksuitvoer.

Voorbeeld:




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}'> )>

Uitgang:

Decoded string: GeeksForGeeks is the best