Come verificare un download con SHA-256 (Windows, macOS, Linux)
Come controllare l'integrità di un file scaricato: cos'è un hash SHA-256 e come calcolarlo in locale dal terminale, senza installare nulla.
Quando scarichi un programma open-source, uno script Python o un sistema operativo da internet, come fai a essere certo che il file sul disco sia esattamente quello rilasciato dall’autore? Durante il tragitto un problema di connessione può corrompere il file. Peggio: qualcuno può aver sostituito il download legittimo con una copia malevola (un attacco alla supply chain). La risposta standard è la verifica dell’hash SHA-256, senza installare nulla di esterno.
In questa guida ti mostro come calcolare l’impronta di qualsiasi file scaricato in pochi secondi, usando solo gli strumenti già presenti su Windows, macOS e Linux — gli stessi che userai per controllare gli script di ai riparo.
ℹ️ Nota / Prerequisito operativo
Ti serve solo il Terminale (o Prompt dei comandi). I comandi per Windows, macOS e Linux sono scritti per intero sotto — non serve aprire altri articoli per completare la verifica.
Letture opzionali: Terminale: comandi minimi, Quando usare pip install.
Cos’è un hash SHA-256?
Immagina l’hash come l’impronta digitale di un file. Quando “passi” un file attraverso l’algoritmo SHA-256, il computer legge ogni singolo bit e produce una stringa unica di 64 caratteri (numeri e lettere).
La crittografia garantisce due cose:
- File identici producono sempre la stessa stringa.
- Se cambi un solo pixel di un’immagine o una sola virgola di uno script, la stringa cambia in modo radicale.
Gli sviluppatori seri — e ai riparo — pubblicano la stringa SHA-256 ufficiale accanto al download. Il tuo compito è calcolare l’impronta del file scaricato e verificare che combaci con quella dichiarata.
Come calcolare l’hash in locale
Ogni sistema operativo moderno ha già un comando nativo per questa impronta. Percorso principale: Windows (Prompt + PowerShell). Poi macOS e Linux. Sotto trovi pezzo per pezzo cosa significa ogni parte del comando — non solo la riga da copiare.
Su Windows — Prompt dei comandi (certutil)
- Apri il menu Start, digita
cmde premi Invio. - Vai nella cartella del file oppure usa un percorso completo (vedi sotto).
- Lancia
certutilcon algoritmo SHA-256.
Comando completo (esempio):
certutil -hashfile C:\Users\Developer\Downloads\script_locale.py SHA256
Cosa significa ogni pezzo
certutil— utility di sistema Windows (certificati e hash). Già installata.-hashfile— calcola l’impronta di questo file, non di un certificato.C:\Users\…\script_locale.py— percorso del file. Con spazi: mettilo tra virgolette.SHA256— algoritmo. Non omettere questa parola, altrimenti non stai facendo SHA-256.
Trucco percorso: digita certutil -hashfile (con spazio finale), trascina il file nella finestra del Prompt, aggiungi spazio + SHA256, Invio.
Output atteso: alcune righe di contesto e, al centro, una stringa esadecimale di 64 caratteri. Copia quella stringa (senza spazi).
Errori tipici
Impossibile aprire il file/ file not found → percorso sbagliato o file non ancora scaricato.- Dimentichi
SHA256→ non stai facendo il confronto utile per le guide di ai riparo. - Confronti a occhio due hash lunghi → usa il tool Confronta due hash.
Su Windows — PowerShell (Get-FileHash)
Se lavori già in PowerShell (Start → powershell):
- Entra nella cartella del download, oppure usa il percorso completo.
- Esegui:
Get-FileHash -Algorithm SHA256 -Path .\script_locale.py
Cosa significa ogni pezzo
Get-FileHash— cmdlet PowerShell nativo per hash di file.-Algorithm SHA256— sceglie SHA-256 (evita SHA1/MD5 per queste verifiche).-Path .\script_locale.py— file da misurare..\= cartella corrente. Con spazi:-Path ".\mio file.py".
Variante con drag & drop del percorso:
Get-FileHash -Algorithm SHA256 -Path "C:\Users\Developer\Downloads\script_locale.py"
Output atteso: una tabella con colonne Algorithm, Hash, Path. Copia il valore di Hash (64 caratteri). Maiuscole/minuscole rispetto all’hash sul sito non contano nel confronto.
💡 Consiglio — Preferisci PowerShell se lo usi già;
certutilva bene uguale dal Prompt classico. L’importante è lo stesso algoritmo (SHA-256) e lo stesso file.
Su macOS (shasum)
- Spotlight (
Cmd + Spazio) →Terminale→ Invio. - Digita il comando, oppure
shasum -a 256+ trascina il file dal Finder + Invio.
shasum -a 256 /Users/Developer/Downloads/script_locale.py
Cosa significa ogni pezzo
shasum— comando macOS/BSD per checksum.-a 256— seleziona SHA-256. Senza questa opzione potresti ottenere un altro hash e il confronto fallisce./Users/…/script_locale.py— percorso assoluto o relativo del file.
Output atteso: HASH nome-file sulla stessa riga. Copia solo l’hash (prima colonna).
Errore tipico: usare md5 o dimenticare -a 256 → stringa diversa da quella pubblicata su ai riparo.
Su Linux (sha256sum)
Debian, Ubuntu, Mint e la maggior parte delle distro desktop:
- Apri il Terminale.
- Digita
sha256sum+ spazio + percorso (o trascina il file).
sha256sum /home/developer/Scaricati/script_locale.py
Cosa significa ogni pezzo
sha256sum— calcola direttamente SHA-256 (il nome del comando è l’algoritmo)./home/…/script_locale.py— percorso del file. Con spazi: usa le virgolette.
Output atteso: come su macOS, HASH nome-file.
Se sha256sum non è trovato (raro su desktop): installa i coreutils della distro, oppure usa openssl dgst -sha256 file come alternativa.
Confrontare i risultati
Una volta ottenuta la stringa sul tuo terminale, affiancala a quella pubblicata sul sito ufficiale dell’autore.
💡 Consiglio pratico — Confronta gli hash con il tool: non confrontare a occhio. Incolla l’hash del sito e quello calcolato in locale nel tool Confronta due hash (menu Tools): il confronto è carattere per carattere, nel browser, senza inviare nulla in rete.
- Stringhe identiche → il file è integro e non è stato manomesso durante il download. Puoi procedere.
- Stringhe diverse → fermati. Elimina il file e riprova. Se l’errore persiste, segnalalo all’autore: potresti aver intercettato un server compromesso o un download corrotto.
Sintesi dei comandi
| Sistema | Comando | Note operative |
|---|---|---|
| Windows Prompt dei comandi |
certutil -hashfile file SHA256
|
Nativo; -hashfile + percorso + SHA256. Trascina il file dopo -hashfile. |
| Windows PowerShell |
Get-FileHash -Algorithm SHA256 -Path file
|
Cmdlet nativo; copia la colonna Hash (64 caratteri). |
| macOS Terminale |
shasum -a 256 file
|
L'opzione -a 256 seleziona esplicitamente SHA-256. |
| Linux Debian, Ubuntu, Mint… |
sha256sum file
|
Comando dedicato; presente di default sulla maggior parte delle distro. |
Domande Frequenti (FAQ)
Cos’è un hash SHA-256 e a cosa serve quando scarico un file?
È un’impronta fissa del contenuto del file. Se anche un solo byte cambia, l’hash cambia. Confrontandolo con quello pubblicato dall’autore, verifichi che il download non sia corrotto o sostituito.
Come calcolo lo SHA-256 su Windows senza installare programmi?
In PowerShell: Get-FileHash -Algorithm SHA256 .\nome-file. Copia l’output e confrontalo (maiuscole/minuscole non contano) con l’hash indicato nella pagina di download.
Come calcolo lo SHA-256 su macOS e Linux?
Su macOS: shasum -a 256 nome-file. Su Linux: sha256sum nome-file. Stesso confronto carattere per carattere con l’impronta ufficiale.
Se l’hash non coincide, cosa devo fare?
Non eseguire il file. Riscaricalo da una fonte ufficiale, ripeti il calcolo e, se diverge ancora, segnala il problema e ferma l’uso: potrebbe essere un download incompleto o un file non autentico.
SHA-256 garantisce che lo script sia “sicuro” al 100%?
No. Garantisce integrità rispetto all’impronta dichiarata dall’autore, non che il codice sia privo di bug o di comportamenti indesiderati. Resta utile: eviti di lanciare una copia alterata rispetto a quella pubblicata.
Conclusione
Verificare i file con SHA-256 è un’abitudine di sicurezza eccellente e costa pochi secondi. Da oggi, ogni volta che pubblicherò uno script Python su ai riparo, troverai l’impronta crittografica accanto al download: così puoi controllare di eseguire esattamente il codice originale, senza dipendenze nascoste e senza fiducia cieca nel solo “funziona”.