logo

Kodowanie i dekodowanie ciągów Base64 w Pythonie

Kodowanie Base64 służy do konwersji bajtów zawierających dane binarne lub tekstowe na znaki ASCII. Kodowanie zapobiega uszkodzeniu danych podczas ich przesyłania lub przetwarzania w systemie tekstowym. W tym artykule omówimy kodowanie i dekodowanie Base64 oraz jego zastosowania do kodowania i dekodowania danych binarnych i tekstowych.

Kodowanie Base64:
Jest to rodzaj konwersji bajtów na znaki ASCII. lista dostępnych znaków Base64 znajduje się poniżej:

do metody string Java
  • 26 wielkich liter
  • 26 małych liter
  • 10 liczb
  • + i / dla nowych linii

Każdy znak Base64 reprezentuje 6 bitów danych. należy również zauważyć, że z oczywistych powodów nie jest on przeznaczony do szyfrowania.
Aby przekonwertować ciąg znaków na znak Base64 należy wykonać następujące kroki:



  • Pobierz wartość ASCII każdego znaku w ciągu.
  • Oblicz 8-bitowy binarny odpowiednik wartości ASCII
  • Konwertuj 8-bitowy fragment znaków na fragmenty 6-bitowe, ponownie grupując cyfry
  • Konwertuj 6-bitowe grupy binarne na odpowiadające im wartości dziesiętne.
  • Użyj tabeli kodowania Base64, aby wyrównać odpowiednie wartości Base64 dla każdej wartości dziesiętnej.

Poniższy obraz przedstawia tabelę kodowania Base64.

Źródło obrazu: Wikipedia

Używanie Pythona do kodowania ciągów znaków:
W Pythonie moduł base64 służy do kodowania i dekodowania danych. Najpierw ciągi znaków są konwertowane na obiekty przypominające bajty, a następnie kodowane przy użyciu modułu base64. Poniższy przykład pokazuje, że implementacja ciągów kodujących nie składa się ze znaków Base64.

Przykład:




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

>

>

Wyjście:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA==>

Używanie Pythona do dekodowania ciągów znaków:
Dekodowanie ciągu Base64 jest dokładnie odwrotne do kodowania. Najpierw konwertujemy ciągi Base64 na niezakodowane bajty danych, a następnie konwertujemy obiekt podobny do bajtu na ciąg znaków. Poniższy przykład przedstawia dekodowanie powyższego przykładowego wyniku ciągu kodowania.

Przykład:




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

>

algorytm dla rsa
>

Wyjście:

Decoded string: GeeksForGeeks is the best>