Calcolare il checksum MD5 di un file in Bash

Il checksum MD5 (Message Digest Algorithm 5) è una funzione hash utilizzata per verificare l'integrità di un file. Confrontando il checksum MD5 di un file originale con quello di un file scaricato o copiato, possiamo capire se il file è stato alterato o corrotto. In ambiente Linux, è possibile calcolare il checksum MD5 di un file direttamente dalla riga di comando usando Bash. In questo articolo, vedremo come calcolare il checksum MD5 di un file utilizzando il comando md5sum in Bash e come utilizzarlo per verificare l'integrità dei file.

Su molte distribuzioni Linux, md5sum è già preinstallato. Puoi verificare se è disponibile digitando:


md5sum --version

Se il comando restituisce una versione, md5sum è installato e puoi procedere. Altrimenti, potrebbe essere necessario installarlo tramite il gestore di pacchetti della tua distribuzione.

Il comando md5sum è molto semplice da usare. La sintassi di base è:


md5sum nome_del_file

Ad esempio, supponiamo di voler calcolare il checksum MD5 di un file chiamato documento.txt. Apri il terminale e digita:


md5sum documento.txt

Questo comando produrrà un output simile a questo:


5d41402abc4b2a76b9719d911017c592  documento.txt

Il valore sulla sinistra (5d41402abc4b2a76b9719d911017c592) è il checksum MD5, mentre sulla destra c'è il nome del file. Se il file viene modificato, il checksum MD5 cambierà, rendendo facile rilevare eventuali alterazioni.

Se hai già un checksum MD5 di riferimento, puoi confrontarlo con quello del file corrente per verificare che siano identici. Supponiamo di avere il checksum salvato in un file di testo chiamato checksum.md5, contenente:


5d41402abc4b2a76b9719d911017c592  documento.txt

Per verificare che documento.txt corrisponda al checksum specificato, usa il seguente comando:


md5sum -c checksum.md5

Questo comando confronterà il checksum MD5 calcolato con quello presente nel file checksum.md5. Se corrispondono, vedrai un messaggio come:


documento.txt: OK

Se invece il checksum non corrisponde, riceverai un avviso che il file non è valido o è stato alterato.

Per calcolare e verificare automaticamente il checksum MD5 di più file, puoi creare uno script Bash. Ad esempio, ecco uno script che calcola il checksum di tutti i file in una directory e lo salva in un file chiamato checksums.md5.


#!/bin/bash

# Verifica che la directory sia passata come argomento
if [ -z "$1" ]; then
  echo "Uso: $0 <directory>"
  exit 1
fi

# Naviga nella directory specificata
cd "$1" || exit

# Crea o sovrascrive il file checksums.md5
md5sum * > checksums.md5
echo "Checksum MD5 salvati in checksums.md5"

Conclusione

Calcolare il checksum MD5 in Bash è un’operazione semplice e molto utile per garantire l'integrità dei file. Usando md5sum, puoi sia generare il checksum di un file sia confrontarlo con valori di riferimento per assicurarti che i file non siano stati alterati o corrotti. Con l’aiuto di uno script Bash, puoi anche automatizzare la generazione e la verifica dei checksum per grandi quantità di file.

Torna su