È possibile identificare un tipo di hash per lunghezza? [duplicare]

0

Ho un file che contiene diversi tipi di hash:

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

Questi hash non hanno sale e posso scoprire che tipo sono. Quello che mi piacerebbe fare è identificare i diversi tipi di hash usando un programma, è possibile identificare un hash per lunghezza o per caratteri specifici?

Quello che so è che ogni hash (per quanto ne so) ha la lettera a-f e i numeri 0-9 in loro, quindi pensavo di poter identificare gli hash di lunghezza, sarebbe possibile identificare un hash senza sale per la lunghezza dell'hash?

Ad esempio l'hash della parola test che usa SHA1 è a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 che ha esattamente 40 caratteri, la parola test che usa MD5 è d41d8cd98f00b204e9800998ecf8427e che ha esattamente 32 caratteri. Se potessi calcolare la lunghezza di ciascun hash (md5, sha1, sha256, ecc.) Sarebbe teoricamente possibile fare un'ipotesi stimata su quale tipo di hash verrebbe mostrato?

    
posta secxit 07.02.2017 - 15:22
fonte

4 risposte

2

Gli hash vengono comunemente rappresentati in questo modo in modo che siano caratteri leggibili / stampabili. Sono rappresentazioni dei valori binari generati dal processo di hashing, ecco perchè usano lo stesso set di caratteri standard di base16.

Molti hash, sì, sono prevedibili per lunghezza.

MD5 è a 128 bit SHA1 è 160 SHA256 è 256, 512 ecc. Ecc. Dividi quelli per 8 per ottenere la lunghezza in byte, quindi i tempi per due per la lunghezza quando rappresentati come ASCII.

Tuttavia non è infallibile. come SHA1 e RIPEMD-160 sono entrambi 160 bit. Le probabilità sono che sarà SHA1 in modo da poter fare un'ipotesi educata, ma non ci sono garanzie

Allo stesso modo qualcuno potrebbe (piuttosto stupidamente) troncare l'hash o ogni sorta di follia o non usare i comuni tipi di hash. Sarebbe solo una supposizione istruita.

    
risposta data 07.02.2017 - 15:32
fonte
2

Non proprio - gli hash salati e senza sale hanno la stessa lunghezza, e qualsiasi funzione di hash con la stessa dimensione di output è essenzialmente indistinguibile da qualsiasi altra. Per le stringhe a 32 caratteri, potresti avere praticamente qualsiasi hash MD *, Havel o un hash troncato più lungo. Per 40 caratteri, potrebbe essere SHA-1 o RipeMD160 o un hash troncato più lungo.

La cosa migliore che potresti fare è assumere che siano tutti hash completi e provare a generare corrispondenze. Non puoi dire se sono salati dalla lunghezza però.

    
risposta data 07.02.2017 - 15:31
fonte
0

Kali Linux ha uno script preinstallato in grado di identificare gli hash, lo strumento è chiamato Hash-Identifier . Puoi modificare questo script per automatizzare la tua scoperta.

Puoi anche utilizzare alcuni strumenti online per identificare gli hash, i miei preferiti sono OnlineHashCrack e dfcode.org .

Ma tieni presente che nessuno strumento è accurato al 100%, l'analisi del codice che la sta generando è sempre l'opzione migliore.

    
risposta data 07.02.2017 - 15:35
fonte
0

Sì, c'è un modo per restringere i risultati e capire che tipo di hash hai a che fare.

Un modo rapido (e pigro) per farlo è usare uno strumento online come Online Hash Crack - Hash Identification Tool

    
risposta data 07.02.2017 - 15:39
fonte

Leggi altre domande sui tag