Кодування та декодування рядків 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