Esta tarde, me vi atormentado por un problema de datos. El cliente me envió un archivo, diciendo que estaba cifrado y que no podían abrirlo. Al ver el formato, me di cuenta de inmediato: esto es Base64, no es cifrado, es solo una capa que parece intimidante.
La verdad, Base64 es algo que en nuestra profesión es amado y odiado. Lo amamos porque es simple y directo, convierte datos binarios en una cadena de texto que se ve ordenada y no se corrompe al transferirla; lo odiamos porque siempre hay quien lo usa como si fuera cifrado, como si fuera algo misterioso. Hoy, si no fuera porque tengo esto presente, habría tenido que explicar al cliente por mucho tiempo: 'Esto no es cifrado, es codificación'.
El asunto es así: el cliente envió un archivo CSV con una columna de datos, todas cadenas que empezaban con 'U2FsdGVkX1+...'. El cliente dijo que eran 'contraseñas cifradas' generadas automáticamente por su sistema, y que necesitaban migrar a un nuevo sistema que no las reconocía. Al ver el inicio, casi me río en voz alta, ¡es la característica típica de Base64! Lo pegué en una herramienta en línea, hice clic en decodificar, y ¡sorpresa! Era solo texto UTF-8 normal, nada de cifrado.
En realidad, me he encontrado con este escenario demasiadas veces. Mucha gente no distingue entre 'codificación' y 'cifrado'. Base64 es esencialmente un método de codificación que convierte bytes de 8 bits en caracteres imprimibles de 6 bits, no tiene ninguna clave, cualquiera puede decodificarlo. Pero como parece un galimatías, a menudo se usa como 'pseudo-cifrado'. Hoy, si no conociera este truco, habría estado adivinando hasta la hora de salir.
Otra vez, estaba manejando un problema de subida de imágenes. El frontend convertía la imagen a una cadena Base64 y la enviaba al backend, pero al almacenarla en la base de datos, la cadena era tan larga que casi reventaba la estructura de la tabla. Luego le enseñé a usar transmisión binaria nativa, y el problema se resolvió al instante. Base64 es conveniente, pero tiene una desventaja fatal: el volumen aumenta aproximadamente un 33%, y con imágenes grandes, la longitud de la cadena puede ser aterradora.
Pero bueno, hoy, este trabajo, realmente tengo que agradecer a Base64. Si no fuera por su codificación tan 'simple', no habría podido confirmar rápidamente el contenido de los datos. Ni siquiera necesité escribir un script, solo usé una herramienta de decodificación en línea y en segundos vi el contenido. Si hubiera sido cifrado real, hoy habría tenido que hacer horas extras.
Así que, como ves, la herramienta en sí no es buena ni mala, lo importante es si la entiendes. Base64 es como una llave maestra: no cierra puertas, pero puede abrir muchas que parecen cerradas. Recomiendo a mis colegas: cuando encuentren una cadena que 'parece basura pero tiene un patrón', no se asusten, copien un fragmento y pruébenlo en un decodificador de Base64, en el 90% de los casos les ahorrará media hora de depuración. Hoy, me salvó la vida otra vez, y la próxima vez que te toque a ti, no olvides este truco.