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