Base64

Es la mayor potencia que puede ser representada usando únicamente los caracteres imprimibles de ASCII.

Esto ha propiciado su uso para codificación de correos electrónicos, PGP y otras aplicaciones.

La especificación original (RFC 989) usa además el carácter '*' para delimitar la parte codificada pero no cifrada del flujo de salida.

Si hay menos de 3 bytes por codificar, el resto del búfer se rellena con ceros.

Este proceso se repite con los datos restantes hasta que queden menos de cuatro octetos.

Después de codificar los datos, si en el paso anterior quedaban 2 octetos por codificar, entonces se añade el carácter '=' al final de la salida; si solo quedaba un octeto, se concatenarán dos caracteres '='.

Además, concreta que cualquier carácter que no pertenezca al alfabeto deberá ser ignorado por los decodificadores, aunque muchas implementaciones usan los caracteres CR/LF (retorno de carro y salto de línea) para delimitar las líneas codificadas.

Ahora esos tres bytes se unen y tenemos el búfer de 24 bits, que será 010011010110000101101110.

Este número se convertirá a su valor Base64, que puede hacerse tomando bloques de 6 bits a la vez (6 bits forman como máximo 64 valores diferentes en binario: 26).

Si posteriormente se usa para almacenamiento en base de datos o entre sistemas heterogéneos, producirán un conflicto en el carácter '%' generado por el codificador de URL (debido a que este carácter es usado en ANSI SQL como comodín).

Otra variante, llamada Base64 Modificado para expresiones regulares, usa "!-" en lugar de "*-" para sustituir el "+/" del Base64 estándar, debido a que, tanto '+' como '*' son caracteres reservados para las expresiones regulares (cabe resaltar que el "[]" usado en la variante IRCu explicada arriba no funcionará en este contexto).