Generatore di hash
Genera hash crittografici (MD5, SHA-1, SHA-256, SHA-512) da input di testo. Perfetto per verificare l'integrità dei file, creare checksum o generare identificatori univoci dal testo. Questo strumento supporta più algoritmi di hashing per soddisfare diversi requisiti di sicurezza e compatibilità.
Domande frequenti
Un hash è una stringa alfanumerica di dimensioni fisse generata da dati di input utilizzando un algoritmo matematico. Gli hash sono utilizzati per verificare l'integrità dei dati, memorizzare le password in modo sicuro, creare identificatori unici e garantire che i file non siano stati manomessi. Lo stesso input produce sempre lo stesso hash, ma è praticamente impossibile invertire il processo.
Per le moderne applicazioni di sicurezza, utilizzare SHA-256 o SHA-512, in quanto attualmente considerati crittograficamente sicuri. MD5 e SHA-1 presentano vulnerabilità note e dovrebbero essere utilizzati solo per scopi non di sicurezza, come le checksum o la compatibilità con sistemi legacy. Per l'archiviazione delle password, si consiglia di utilizzare algoritmi specializzati come bcrypt o Argon2.
Si tratta di diversi algoritmi di hashing con diversi livelli di sicurezza e dimensioni di output. MD5 produce hash a 128 bit ed è veloce, ma non crittograficamente corretto. SHA-1 produce hash a 160 bit ed è deprecato per la sicurezza. SHA-256 produce hash a 256 bit e SHA-512 produce hash a 512 bit - entrambi sono attualmente sicuri. Gli hash più lunghi offrono generalmente una maggiore sicurezza, ma richiedono più spazio di archiviazione.
No, gli hash crittografici sono funzioni unidirezionali progettate per essere irreversibili. Non è possibile invertire matematicamente un hash per ottenere l'input originale. Tuttavia, se l'input è comune o prevedibile, può essere trovato in tabelle arcobaleno o attraverso tentativi di forza bruta. Per questo motivo è importante aggiungere un sale alle password prima dell'hashing.
Scaricate il file e generatene l'hash utilizzando lo stesso algoritmo usato dal provider (di solito SHA-256). Confrontate l'hash generato con quello fornito dall'origine del file. Se corrispondono esattamente, il file è intatto e non è stato corrotto o manomesso. Anche una sola modifica di un bit nel file produrrà un hash completamente diverso.
Il processo di hashing è sicuro e viene eseguito interamente nel browser senza inviare dati ai nostri server. Tuttavia, ricordate che l'hashing da solo non è una crittografia: i valori hash non possono essere decifrati. Per la memorizzazione delle password, utilizzare sempre misure di sicurezza aggiuntive come la salatura e considerare l'utilizzo di funzioni di hashing delle password specializzate.
La salatura aggiunge dati casuali alle password prima dell'hashing, garantendo che la stessa password produca hash diversi ogni volta. In questo modo si evitano gli attacchi di tipo rainbow table e si rende più difficile il cracking di più password contemporaneamente. Utilizzate sempre sali unici per ogni password e memorizzate il sale insieme all'hash. Utilizzate bcrypt, scrypt o Argon2 che gestiscono automaticamente la salatura.
Sebbene l'MD5 sia crittograficamente rotto ai fini della sicurezza, è ancora accettabile per i controlli di base dell'integrità dei file in scenari non contraddittori (come la verifica che i download non siano stati corrotti). Tuttavia, per gli scenari in cui la manomissione è un problema, si consiglia di utilizzare SHA-256 o SHA-512, poiché gli aggressori possono creare file dannosi con hash MD5 corrispondenti.
Le criptovalute utilizzano ampiamente gli hash crittografici: Bitcoin utilizza SHA-256 per creare collegamenti di blocco immutabili, generare indirizzi e per il mining proof-of-work. Ogni blocco contiene un hash del blocco precedente, creando una catena infrangibile. Qualsiasi manomissione modifica l'hash, invalidando tutti i blocchi successivi.
L'hash è unidirezionale e irreversibile: non è possibile recuperare i dati originali da un hash. La crittografia è bidirezionale e reversibile: i dati crittografati possono essere decifrati con la chiave giusta. Utilizzate l'hashing per la memorizzazione delle password e la verifica dell'integrità, la crittografia per proteggere i dati che devono essere letti in seguito (come le carte di credito o i messaggi privati).
