¿Es posible identificar un tipo de hash por longitud? [duplicar]

0

Tengo un archivo que contiene un montón de tipos diferentes de hashes:

a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
90a3ed9e32b2aaf4c61c410eb925426119e1a9dc53d4286ade99a809
f8d3b312442a67706057aeb45b983221afb4f035
768412320f7b0aa5812fce428dc4706b3cae50e02a64caa16a782249bfe8efc4b7ef1ccb126255d196047dfedf17a0a9
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff
db346d691d7acc4dc2625db19f9e3f52
098f6bcd4621d373cade4e832627b4f6
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
90a3ed9e32b2aaf4c61c410eb925426119e1a9dc53d4286ade99a809
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
5e52fee47e6b070565f74372468cdc699de89107
f8d3b312442a67706057aeb45b983221afb4f035
098f6bcd4621d373cade4e832627b4f6
db346d691d7acc4dc2625db19f9e3f52
768412320f7b0aa5812fce428dc4706b3cae50e02a64caa16a782249bfe8efc4b7ef1ccb126255d196047dfedf17a0a9
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff
5e52fee47e6b070565f74372468cdc699de89107
b913d5bbb8e461c2c5961cbe0edcdadfd29f068225ceb37da6defcf89849368f8c6c2eb6a4c4ac75775d032a0ecfdfe8550573062b653fe92fc7b8fb3b7be8d6

Estos hashes no tienen sal y puedo averiguar qué tipo son. Lo que me gustaría hacer es identificar los diferentes tipos de hashes utilizando un programa, ¿es posible identificar un hash por longitud o por caracteres específicos?

Lo que sé es que cada hash (que yo sepa) tiene la letra a-f y los números 0-9 en ellos, así que pensé que podría identificar los hashes por longitud, ¿sería posible identificarlos? un hash sin sal por la longitud del hash?

Por ejemplo, el hash de la palabra test usando SHA1 es a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 que tiene exactamente 40 caracteres, la palabra test que usa MD5 es d41d8cd98f00b204e9800998ecf8427e que tiene exactamente 32 caracteres. Si pudiera averiguar la longitud de cada hash (md5, sha1, sha256, etc.) ¿sería teóricamente posible hacer una estimación estimada sobre qué tipo de hash se mostraría?

    
pregunta secxit 07.02.2017 - 15:22
fuente

4 respuestas

2

Los hash se suelen representar de esa manera, por lo que son caracteres legibles / imprimibles. Son representaciones de los valores binarios generados por el proceso de hashing, por eso usan el mismo conjunto de caracteres base16 estándar.

Muchos hashes, sí, son predecibles por longitud.

MD5 es de 128 bits SHA1 es 160 SHA256 es 256, 512 etc. etc. Divida esos por 8 para obtener la longitud en bytes, luego los tiempos por dos para la longitud cuando se representa como ASCII.

Sin embargo, no es infalible. como SHA1 y RIPEMD-160 son ambos de 160 bits. Lo más probable es que sea SHA1, por lo que puede hacer una estimación informada, pero no hay garantías

Igualmente, alguien podría estar (bastante estúpidamente) truncando el hash o todo tipo de locuras o no usando tipos de hash comunes. Sería solo una suposición educada.

    
respondido por el user2867314 07.02.2017 - 15:32
fuente
2

En realidad no: los hash salados y sin sal tienen la misma longitud, y cualquier función de hash con el mismo tamaño de salida es esencialmente indistinguible de cualquier otra. Para cadenas de 32 caracteres, es posible que tenga casi cualquier hash MD *, Havel o un hash más largo truncado. Para 40 caracteres, podría ser SHA-1 o RipeMD160, o un hash truncado más largo.

Lo mejor que puedes hacer es asumir que todos son hashes completos e intentar generar coincidencias. Sin embargo, no se puede saber si están salados por la longitud.

    
respondido por el Matthew 07.02.2017 - 15:31
fuente
0

Kali Linux tiene un script preinstalado que puede identificar hashes, la herramienta se llama Hash-Identifier . Puede modificar este script para automatizar su descubrimiento.

También puedes usar algunas herramientas en línea para identificar hashes, mis preferidas son OnlineHashCrack y dfcode.org .

Pero tenga en cuenta que ninguna herramienta es 100% precisa, ya que analizar el código que la genera es siempre la mejor opción.

    
respondido por el Ricardo Reimao 07.02.2017 - 15:35
fuente
0

Sí, hay una manera de reducir los resultados y averiguar qué tipo de hash estás tratando.

Una forma rápida (y perezosa) de hacerlo es mediante una herramienta en línea como Online Hash Crack - Hash Identification Tool

    
respondido por el pzirkind 07.02.2017 - 15:39
fuente

Lea otras preguntas en las etiquetas