Differenza tra Sha1sum, Sha256sum e Md5sum


Risposte:


8

Se guardi la pagina man di ognuna di queste, vedrai che dicono:

md5sum - compute and check MD5 message digest

sha1sum - compute and check SHA1 message digest

sha256sum - compute and check SHA256 message digest

Questo ti dice che tutti creano un digest di messaggio , che è una funzione a senso unico che prende come argomento un dato di dimensioni arbitrarie e restituisce un hash di dimensioni fisse. Un hash è considerato impossibile (entro i limiti della praticità) per invertire e trovare due diversi messaggi con lo stesso hash (chiamato collisione).

La differenza tra i tre è l'algoritmo utilizzato per generare questo hash.

MD5 è stato inventato nei primi anni '90 ed è ormai considerato difettoso e obsoleto.

SHA1 è stato sviluppato anche nei primi anni '90. È considerato più forte di MD5, ma non abbastanza forte. Il suo utilizzo è attualmente ritirato dalla firma digitale sui certificati digitali X.509.

SHA256 è la funzione hash attualmente consigliata.

A meno che tu non abbia una ragione per usare gli algoritmi più deboli, SHA256 è la strada da percorrere.

Per creare il file di testo, reindirizza semplicemente l'output al file. Ad esempio, se si dispone di un'immagine ISO di Ubuntu che si desidera hash:

 md5sum Ubuntu.iso > md5sum.txt

Naturalmente, funziona anche con le altre varianti.

È quindi possibile (ad esempio) distribuire quel file su Internet e il destinatario può ricontrollare l'hash con:

md5sum Ubuntu.iso

Ciò stamperà l'hash MD5 che il destinatario può confrontare con il contenuto del md5sum.txtfile che sarà pubblicato. Se sono uguali, il file non è stato manomesso.

Certo, sarebbe meglio usare sha256sumdi md5sum. Troverai spesso una selezione di questi hash pubblicati ( md5sum.txt, sha1sum.txte / o sha256sum.txt) con un ISO per consentire il fatto che alcuni sistemi potrebbero non avere tutte queste utilità.


1

MD5, SHA-1 e SHA-256 sono diverse funzioni hash (digest). Sono diversi sia per l'algoritmo che per le dimensioni dell'output.

Se controlli file di grandi dimensioni, puoi accelerare il processo evitando di dover leggere il file più volte. Un approccio generale è

mkfifo md5 sha1 sha256
md5sum md5 >md5.txt &
sha1sum sha1 >sha1.txt &
sha256sum sha256 >sha256.txt &
zsh -c 'setopt MULTIOS; cat input >md5 >sha1 >sha256'

In questo caso, tuttavia, è più semplice, poiché esiste un programma che calcola contemporaneamente più digest:

gpg --print-mds input

geniale l'uso di gpg, ma come posso usarlo per confrontare diversi file?
Herman Toothrot,

1
@ user4050 Puoi usare gpg --print-mds <file1 >digest.1; gpg --print-mds <file2 >digest.2anf e poi confrontarlo digest.1condigest.2
Hauke ​​Laging il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.