La codificación Base64 se utiliza para convertir bytes que contienen datos binarios o texto en caracteres ASCII. La codificación evita que los datos se dañen 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 líneas nuevas
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:
- Encuentre el valor ASCII de cada carácter en la cadena.
- Calcule el equivalente binario de 8 bits de los valores ASCII
- Convierta la porción de caracteres de 8 bits en una porción de 6 bits reagrupando los dígitos
- Convierta los grupos binarios de 6 bits a sus respectivos valores decimales.
- Use 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
En Python, el módulo base64 se usa para codificar y decodificar datos. Primero, las cadenas se convierten en objetos similares a bytes y luego se codifican con el módulo base64. El siguiente ejemplo muestra que la implementación de cadenas codificadas 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 cadena Base64 decodificada es exactamente lo contrario de la cadena codificada. Primero convertimos las cadenas Base64 en bytes de datos no codificados, seguido de la conversión en bytes como un byte en una cadena. El siguiente ejemplo muestra la decodificación de la salida de cadena codificada 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