martes, 2 de septiembre de 2008

Otra gran utilidad: convertir base64 en ficheros

Y la de veces que me ha pasado... Te envian un correo, y te llega en ASCII, y los ficheros adjuntos se convierten es cosas como esta:

JVB11i0xLjIgDSXi48/TDQog3aawIDAgb2JqDTw8DS9MZW5ndGggMTEgMCBSDS9GaWx0ZXIgL0xa
V0RlY29kZSANPj4NcMqWUWjK4wyX1O22/D4uUjIYySXTEYDfAY8UUSjUghkEmEkiEEiVzV0Igkcq
0oQFwUbIi63cEEuCnJWWzg3QDSUQcbDiP264DDAjW33a8Xq+QMaZYXDaHDYcjHuwfDxPRZ7G6jI2
QGi2aDLuw4WjGY+SIiCOaGPjSQyySgaFD1sm5D4oqkjZwC4r2vg7yXvoFz7QRASywYhzEvvBL2Mr
Ar5vrA7IQVCsDM7DMBw ... [un montón mas de caracteres] ...
VVBE0i0xLjIgDSXi48/TDQogDTE543DAgb2JqDTw8DS9MZ5ndGggMTEgMCBSDS9GaWx0ZXIgL0ff
V0RlY29kZSANPjpaD3Aa


Esto nos ocurre, al no poder mandar ficheros binarios en ASCII, el cliente es muy listo y lo codifica en base64, para poder escribir un fichero binario en caracteres imprimibles en un correo electronico.
El "truco" es usar solo 64 caracteres por lo que un byte binario (8 bits), no entra en la representacion (6 bits) y suele representarse con 2 caracteres (2^6=64 y 2^8 = 256). Yo me explico fatal, pero en la Wikipedia hay un buen articulo con un diagrama muy clarificador.

Bueno, pues si nos pasa, buscamos la extensión en el atributo "filename=" que vendrá en el correo y luego visitamos esta web. Le copiamos este bloque de caracteres, marcamos decode, y recibimos un fichero, al cual solo nos resta cambiar la extensión a la que marca el atributo "filename". ¿Sencillo?.

No hay comentarios: