Codificación Base64

YesDev - Sep 25 - - Dev Community

¿Que es Base64?

Base64 es un esquema de codificación que convierte datos binarios en texto, facilitando su transmisión a través de medios que solo admiten texto, como correos electrónicos o formularios web. Este proceso transforma los datos binarios en una cadena de caracteres ASCII, asegurando la compatibilidad con protocolos que requieren este tipo de formato.

¿Cómo funciona Base64?

División de los datos en bloques:

  • Base64 toma los datos binarios originales y los divide en bloques de 3 bytes (24 bits).

Conversión de los 24 bits a 4 grupos de 6 bits:

  • Cada bloque de 3 bytes se divide en 4 bloques de 6 bits. Esto da como resultado un valor entre 0 y 63, que es utilizado para mapear a un conjunto de caracteres Base64.

Asignación a los caracteres Base64:

  • Cada bloque de 6 bits se convierte en un carácter de una tabla Base64, que contiene 64 caracteres posibles.
A-Z (26 letras mayúsculas)
a-z (26 letras minúsculas)
0-9 (10 dígitos)
+, / (2 símbolos)
Enter fullscreen mode Exit fullscreen mode

Estos 64 caracteres forman el conjunto completo de Base64.

Ejemplo de codificación Base64:

Imaginemos que queremos codificar la palabra "Hola" en Base64.

  1. Convertir "Hola" a binario:
  • La palabra "Hola" tiene 4 caracteres, que en ASCII corresponden a los siguientes valores:
H = 01001000
o = 01101111
l = 01101100
a = 01100001
Enter fullscreen mode Exit fullscreen mode

Juntamos todos los bits: 01001000 01101111 01101100 01100001.

  1. Dividir en grupos de 6 bits:
010010 000110 111101 101100 011000 01
Enter fullscreen mode Exit fullscreen mode
  1. Convertir los valores de 6 bits a caracteres Base64: Cada grupo de 6 bits se convierte en un valor decimal y se mapea a un carácter Base64
010010 = 18 = S
000110 = 6 = G
111101 = 61 = 9
101100 = 44 = s
011000 = 24 = Y
Enter fullscreen mode Exit fullscreen mode
  1. Carácter de Relleno: Dado que tenemos un byte adicional (no múltiplo de 3), se añade un carácter de relleno =

El resultado final es:

SG9sYQ==
Enter fullscreen mode Exit fullscreen mode

Por lo tanto, la palabra "Hola" en Base64 es SG9sYQ==

Decodificación

El proceso de decodificación es el inverso. Se toma la cadena codificada, se convierte cada carácter en un valor de 6 bits, se juntan los bits y se vuelven a agrupar en bloques de 8 bits (1 byte), obteniendo así los datos binarios originales.

Características importantes de Base64:

Espacio adicional:
La codificación Base64 aumenta el tamaño de los datos en un 33% aproximadamente. Esto se debe a que por cada 3 bytes de datos, Base64 genera 4 caracteres.

Seguro para sistemas basados en texto:
Base64 es ideal para transmitir datos binarios en sistemas que solo manejan texto, como correos electrónicos y formularios web. Estos sistemas pueden no admitir caracteres especiales o bytes de control, pero los caracteres Base64 son compatibles con casi todos los sistemas.

No es una encriptación:
Base64 no es un algoritmo de cifrado y no se debe usar para proteger datos confidenciales. Solo convierte datos binarios a texto para su transmisión. Cualquiera que reciba los datos puede decodificarlos fácilmente.

Aplicaciones comunes:
Imágenes en HTML o CSS: En vez de enlazar a un archivo de imagen, puedes incrustar la imagen directamente como una cadena Base64.

Transferencia de archivos en correos electrónicos:
Cuando envías archivos adjuntos por correo electrónico, se suelen codificar en Base64.

APIs web y JSON:
Al enviar datos binarios (como archivos o imágenes) a través de APIs RESTful que usan JSON, Base64 es la forma estándar de representar esos datos.


Codificadores/Decodificadores base64 online

💾 Base64 Decode and Encode

💾 CyberChef

💾 Base64.Guru

Más Info

📕 Base64 - MDN Web Docs Glossary: Definitions of Web-related terms | MDN

📙 ASCII table - Table of ASCII codes, characters and symbols

📘 Sistema binario

.
Terabox Video Player