Кодування та декодування рядків Base64 у Python

Кодування та декодування рядків Base64 у Python

Кодування Base64 використовується для перетворення байтів, які містять двійкові або текстові дані, у символи ASCII. Кодування запобігає пошкодженню даних під час їх передачі або обробки через текстову систему. У цій статті ми обговоримо кодування та декодування Base64 і його використання для кодування та декодування двійкових і текстових даних.

Кодування Base64:
Це тип перетворення байтів у символи ASCII. список доступних символів Base64 наведено нижче:

  • 26 великих літер
  • 26 малих літер
  • 10 чисел
  • + і / для нових рядків

Кожен символ Base64 представляє 6 біт даних. також важливо зазначити, що він не призначений для шифрування зі зрозумілих причин.
Щоб перетворити рядок на символ Base64, необхідно виконати наступні дії:

  • Отримайте значення ASCII кожного символу в рядку.
  • Обчисліть 8-бітний двійковий еквівалент значень ASCII
  • Перетворіть фрагмент 8-бітних символів у фрагменти по 6 бітів шляхом перегрупування цифр
  • Перетворіть 6-розрядні двійкові групи на відповідні десяткові значення.
  • Використовуйте таблицю кодування Base64, щоб вирівняти відповідні значення Base64 для кожного десяткового значення.

На зображенні нижче представлена ​​таблиця кодування Base64.

Джерело зображення: Вікіпедія

Використання python для кодування рядків:
У Python модуль base64 використовується для кодування та декодування даних. Спочатку рядки перетворюються на байтоподібні об’єкти, а потім кодуються за допомогою модуля base64. У наведеному нижче прикладі показано реалізацію рядків кодування, які не є символами base64.

приклад:




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

Вихід:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Використання Python для декодування рядків:
Декодування рядка Base64 прямо протилежне кодуванню. Спочатку ми перетворюємо рядки Base64 у незакодовані байти даних, а потім перетворюємо байтоподібний об’єкт у рядок. У наведеному нижче прикладі показано декодування наведеного вище прикладу вихідного рядка кодування.

приклад:




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

Вихід:

Decoded string: GeeksForGeeks is the best