Codificación y decodificación de cadenas Base64 en Python

Codificación y decodificación de cadenas Base64 en Python

La codificación Base64 se utiliza para convertir bytes que tienen datos binarios o de texto en caracteres ASCII. La codificación evita que los datos se corrompan cuando se transfieren o procesan a través de un sistema de solo texto. En este artículo, analizaremos la codificación y decodificación Base64 y sus usos para codificar y decodificar datos binarios y de texto.

Codificación Base64:
Es un tipo de conversión de bytes a caracteres ASCII. La lista de caracteres Base64 disponibles se menciona a continuación:

  • 26 letras mayúsculas
  • 26 letras minúsculas
  • 10 numeros
  • + y / para nuevas líneas

Cada carácter Base64 representa 6 bits de datos. También es importante tener en cuenta que no está destinado al cifrado por razones obvias.
Para convertir una cadena en un carácter Base64 se deben seguir los siguientes pasos:

  • Obtenga el valor ASCII de cada carácter de la cadena.
  • Calcular el equivalente binario de 8 bits de los valores ASCII
  • Convierta el fragmento de caracteres de 8 bits en fragmentos de 6 bits reagrupando los dígitos
  • Convierta los grupos binarios de 6 bits a sus respectivos valores decimales.
  • Utilice la tabla de codificación Base64 para alinear los valores Base64 respectivos para cada valor decimal.

La siguiente imagen nos proporciona una tabla de codificación Base64.

Fuente de la imagen: Wikipedia

Usando Python para codificar cadenas:
En Python, el módulo base64 se utiliza para codificar y decodificar datos. Primero, las cadenas se convierten en objetos similares a bytes y luego se codifican utilizando el módulo base64. El siguiente ejemplo muestra la implementación de cadenas de codificación que no son caracteres base64.

Ejemplo:




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

Producción:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Usando Python para decodificar cadenas:
La decodificación de cadenas Base64 es exactamente opuesta a la de codificación. Primero convertimos las cadenas Base64 en bytes de datos no codificados, seguido de la conversión en un objeto similar a bytes en una cadena. El siguiente ejemplo muestra la decodificación de la salida de cadena de codificación del ejemplo anterior.

Ejemplo:




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

Producción:

Decoded string: GeeksForGeeks is the best