A David Buchanan se le ocurrió que sería divertido generar una imagen PNG que mostrara su propio hash, lo cual no es trivial. Después de darle vuelta al problemático bucle en el que entra la cuestión (si modificas la imagen cambia el hash y si cambia el hash tienes que modificar la imagen) finalmente lo consiguió. Y con el bonus de hacer que el hash empiece y acabe por 1337 (en la cultura hacker: Leet o «Élite»).
El resultado es este curioso PNG de 444×666 píxeles y 103 KB donde puede verse el valor del hash (1337e2ef42b9bee8de06a4d223a51337) y para el que si se calcula el hash MD5 se obtiene el mismo valor. Puedes comprobarlo descargando la imagen y ejecutando
md5sum hashquine_by_retr0id.png
o desde una página que haga el mismo cálculo como MD4 File Checksum.
El asunto dista de ser trivial, como decíamos. Recordemos que la función hash transforma un fichero cualquiera en un valor de longitud fija que es único… o único en la práctica, al menos. Lo interesante de estas funciones, como la MD5, es que un cambio en un solo bit modifica totalmente el hash. En el caso del MD5 son 128 bits que es fácil ver como 32 caracteres hexadecimales. Se utiliza ampliamente en criptografía y seguridad.
La idea de Buchanan, explicada someramente, consiste en utilizar la fuerza bruta, ir cambiando algunos píxeles o colores casi inapreciables y recalcular el hash una y otra vez, hasta encontrar uno que coincida (técnicamente se dice «que produzca colisiones»). La …