MD5 ha i suoi difetti e quindi non è un'ottima scelta per alcuni metodi di crittografia, ma è molto adatto per la verifica dei file. Funziona creando un checksum di un file e confrontando il risultato con l'originale. Ciò significa che se ci sono modifiche in un file, non è possibile produrre un valore digest simile all'originale. Il valore rimane costante, indipendentemente da dove generato o quante volte fintanto che il file rimane invariato.
Per questa guida, esamineremo i modi per generare un valore hash MD5 di un file. Ciò ti consentirà di verificare l'integrità dei file da posizioni remote o sulla macchina locale.
Installa md5sum
In Linux e sistemi quasi unix e simili a unix, vengono preinstallati con uno strumento MD5. Il più comune è md5sum. Per impostazione predefinita, dovresti trovarlo disponibile nel tuo sistema.
$ quale md5sumSe non è installato lo strumento, è possibile utilizzare il gestore dei pacchetti del sistema.
Debian/Ubuntu
Su Ubuntu e altre distribuzioni basate su Debian, usa APT come:
Rehl/centos
Su REHL e CENTOS, usa Yum come:
Arch/Manjaro
Se sei su Manjaro o altre distribuzioni basate sull'arco, usa Pacman usando il comando:
Fedora
Infine, sui sistemi Fedora, usa il comando DNF come:
Generare md5sum di un file
Con lo strumento installato, possiamo procedere e generare un MD5Sum per un file. Puoi utilizzare qualsiasi file di base disponibile nel tuo sistema. Nel mio esempio, sto usando i /etc /host disponibili nei sistemi Linux.
Per generare il md5sum di un file, usa semplicemente il comando md5sum seguito dal nome file, che puoi vedere nel comando seguente:
sudo md5sum /etc /hostIl comando sopra dovrebbe generare un valore di hash del file come mostrato nell'output di seguito:
f0ea6f62e5a12ed9aee557b23842c6f6 /etc /hostsUna volta che il contenuto della modifica del file, il valore MD5SUM diventa completamente diverso. Ad esempio, aggiungi un valore al file/etc/host.
sudo nano /etc /hostAggiungi la seguente voce al file (non esitare a cambiare in qualsiasi modo si vede opportuno).
192.168.0.20 LocalhostSe si tenta di calcolare il valore MD5 del file con i nuovi contenuti come:
sudo md5sum /etc /hostIl valore hash è diverso come mostrato nell'output di seguito:
f4b7f54d5b85a9e73e3c8960c6e9319e /etc /hostsSe si ripristina il file al contenuto originale, il valore MD5Sum è simile all'originale, permettendoti di sapere quando un file è cambiato.
NOTA: Il valore MD5 sarà simile all'originale anche se il file viene rinominato. Questo perché MD5 è calcolato in base al contenuto del file e non al nome file.
Verifica i file online
Supponiamo di voler verificare l'integrità di un file e assicurarti che sia a prova di manomissione. Per fare questo, tutto ciò di cui hai bisogno è il valore MD5 originale. Nel mio esempio, sto usando un semplice pacchetto Deb di MySQL dalla risorsa di seguito:
https: // dev.mysql.com/downloads/mysql/
Scarica il file con wget usando il comando come:
wget https: // dev.mysql.com/get/downloads/mysql-8.0/libmysqlclient21_8.0.25-1DEBIAN10_AMD64.DebUna volta scaricato il file:
Verifichiamo ora il valore MD5 usando un comando:
$ md5sum libmysqlclient21_8.0.25-1DEBIAN10_AMD64.DebSe il file non è stato modificato in alcun modo, è necessario ottenere un valore simile all'originale come mostrato:
62EA69F71DEFBFDAC7A60C124F5769C7 libmysqlclient21_8.0.25-1DEBIAN10_AMD64.DebConclusione
Questo tutorial ha esaminato un semplice metodo per verificare il checksum MD5 dei file e verificare il loro stato di modifica.
Ecco un rapido esercizio per te.
Esercizio
Crea un semplice script bash che controlla se un valore MD5 del file ha una modifica registrata ogni 5 minuti. Se il file è stato modificato, elimina il file e spegnere il sistema.
Questo dovrebbe essere un esercizio divertente!