La codificación Base64 en resumen
Base64 convierte bytes en texto que atraviesa cualquier sistema que solo maneja ASCII imprimible: cuerpos de correo, cadenas JSON, atributos HTML, cabeceras HTTP. Cada 3 bytes se convierten en 4 caracteres, así que el texto codificado es aproximadamente un 33 por ciento más largo que la entrada. Si la longitud de la entrada no es múltiplo de tres, uno o dos = completan el resultado hasta un múltiplo de cuatro caracteres.
Ejemplos
Hellose convierte enSGVsbG8=.user:passse convierte endXNlcjpwYXNz, la forma en que la autenticación HTTP Basic envía las credenciales:Authorization: Basic dXNlcjpwYXNz.<<???>>se convierte enPDw/Pz8+Pg==con el alfabeto estándar y enPDw_Pz8-Pgen la forma segura para URL sin relleno.
¿Estándar o seguro para URL?
El alfabeto estándar usa + y /, que tienen un significado propio en URLs y nombres de archivo. Base64url los sustituye por - y _ y normalmente omite el relleno. Úsalo para valores en URLs, nombres de archivo y JSON Web Tokens; usa el alfabeto estándar para MIME, data URIs y la mayoría de las APIs.
Codificar no es cifrar
Cualquiera puede decodificar Base64; no oculta nada. Para leer un valor codificado, usa el decodificador Base64. Si necesitas claves aleatorias en lugar de tu propio texto, el generador Base64 las crea a partir de bytes aleatorios seguros.