Hash crittografici: l'impronta digitale dei dati
Una funzione hash crittografica è un algoritmo che trasforma un input di qualsiasi dimensione (un file da 1 byte o da 10 GB) in una stringa di lunghezza fissa chiamata digest o hash. Le proprietà fondamentali di un buon hash crittografico sono tre: è deterministico (lo stesso input produce sempre lo stesso hash), è unidirezionale (dall'hash non si può risalire all'input), ed è resistente alle collisioni (è praticamente impossibile trovare due input diversi con lo stesso hash). Queste proprietà rendono gli hash fondamentali per la sicurezza informatica.
Il nostro Hash Generator calcola hash con gli algoritmi più diffusi: MD5 (128 bit, deprecato per sicurezza ma ancora usato per checksum), SHA-1 (160 bit, deprecato), SHA-256 (256 bit, lo standard attuale), e SHA-512 (512 bit, per sicurezza extra). Basta inserire il testo e lo strumento calcola istantaneamente l'hash con tutti gli algoritmi, permettendo il confronto e la verifica.
Quale algoritmo scegliere
Per l'uso generale (verifica integrità file, firme digitali, blockchain), SHA-256 è lo standard. Per archiviazione password, non usare nessuno di questi: servono algoritmi specifici come bcrypt, scrypt o Argon2 che sono deliberatamente lenti per resistere al brute-force. MD5 e SHA-1, nonostante le vulnerabilità crittografiche, sono ancora usati per checksum non di sicurezza: verificare se un download è corrotto, generare ID univoci, o deduplicare file.
Usi pratici degli hash
Verifica integrità dei file: quando scarichi un software, il sito spesso pubblica l'hash SHA-256 del file. Calcola l'hash del file scaricato con il nostro tool e confrontalo con quello pubblicato. Se coincidono, il file è integro e non è stato alterato (da malware o da un mirror compromesso). Per generare password sicure da usare come input per l'hash, usa il nostro Password Generator che produce stringhe crittograficamente casuali.
Nel mondo della sicurezza web, gli hash proteggono le password archiviate: il server non salva mai la password in chiaro, ma il suo hash. Durante il login, calcola l'hash dell'input e lo confronta con quello archiviato. Se il database viene compromesso, l'attaccante ottiene solo gli hash, non le password. Per proteggere i dati in transito, verifica che il tuo sito usi HTTPS con SSL Check — un hash della password inviato su HTTP è intercettabile e può essere usato direttamente (pass-the-hash).
Un concetto avanzato: il salt. Aggiungere una stringa casuale univoca (salt) alla password prima dell'hashing previene gli attacchi con rainbow table (tabelle di hash pre-calcolati). Senza salt, password uguali producono hash uguali, permettendo attacchi batch. Con salt univoco per utente, ogni hash è diverso anche per password identiche, e le rainbow table diventano inutili. Tutti i framework web moderni gestiscono il salt automaticamente — se implementi l'hashing manualmente, usa sempre un salt casuale di almeno 16 byte.