Vuoi migliorare questa domanda? Aggiorna la domanda in modo che sia in argomento per Unix e Linux Stack Exchange.
Chiuso 2 anni fa.
Migliora questa domanda
L'ho letto usando sha1sum
il comando eseguirà l'algoritmo SHA-1 e ti darà un risultato "unico", ma come può essere?
sha1sum
ti dà un hash di 40 caratteri, come questo:
e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
Questo è lungo 40 caratteri e ha caratteri esadecimali, quindi l'hash può avere al massimo 16 combinazioni.
Ciò dovrebbe significare che, per due file casuali qualsiasi, è una piccola possibilità che la loro somma hash sarebbe esattamente la stessa, giusto?
Risposta accettata:
Un hash SHA-1, come qualsiasi hash, non è unico; infatti sono state trovate delle collisioni (e, soprattutto, realizzate).
La proprietà desiderabile di una funzione hash è che è difficile costruire due file che producono lo stesso hash, non che gli hash prodotti siano unici (come dici tu, una somma SHA-1 ha 160 bit, quindi ci sono solo 2 hash diversi); difficile significa che non puoi trovare una collisione più velocemente della ricerca a forza bruta. Se scegli un file, un altro file scelto casualmente ha una possibilità su 2 di avere lo stesso hash. SHA-1 è considerato insicuro dal 2005; vedrai le probabilità fornite lì come una su 2, grazie all'attacco del compleanno (le probabilità ci sono quelle di trovare due file in collisione in un grande pagliaio, non quelle di trovare un file in collisione per un obiettivo specifico).