¿Determine los métodos de codificación / hashing que se utilizan basándose en conocer solo la entrada y la salida?

4

Si sé el valor inicial de una cadena y el hash resultante pero no tengo acceso al sistema que produce la salida, ¿cómo puedo determinar lo que realmente ocurrió para poder reproducir el algoritmo de hash?

Para darle un ejemplo, digamos que tengo una lista como esta:

Nathan    b01f1c8a5cc02855a2fc19ffc0da421b
password  0b8b946432f1ac91f0b07bd5f8df6587
string    c741dd70bca16058ca3f62b2ee926ec6

Sé que los pasos que tomé para obtener esto fueron MD5(Base64("string")) pero ¿hay alguna forma de determinar eso solo con los datos anteriores? ¿Además de probar un montón de secuencias comunes de codificación / hash en las cadenas originales y esperar tropezar con una salida coincidente? Si tengo muchas cadenas de entrada y hashes de salida, ¿eso ayuda de alguna manera para el análisis?

    
pregunta Nathan 01.11.2012 - 06:02
fuente

2 respuestas

7
  

¿Hay alguna forma de determinar eso basándose solo en los datos anteriores además de probar un montón de secuencias comunes de codificación / hash en las cadenas originales y con la esperanza de encontrar una salida que coincida?

No, no hay otra manera. A veces recibimos sugerencias al saber la longitud de las cosas (los hashes MD5 son más cortos que SHA-256, etc.), pero eso todavía no le promete nada.

    
respondido por el Jeff Ferland 01.11.2012 - 06:40
fuente
2

Nathan - ninguna herramienta te ayudará aquí. Si supiera que era un conjunto de algoritmos fijos y cortos, podría tener alguna posibilidad, pero el hash normalmente usa sales, lo que hace esto imposible.

La combinación de un buen algoritmo de hashing más una sal significa que podría tener cualquier salida para una entrada determinada (excluyendo la diferencia de longitud ocasional)

    
respondido por el Rory Alsop 01.11.2012 - 08:47
fuente

Lea otras preguntas en las etiquetas