Vai al contenuto principale
FreeOnlineTools Go
Italiano
Spiegazione

Cos'è l'hashing? Una spiegazione completa delle funzioni hash

Di FreeOnlineTools Team · 2026-09-02 aggiornata

Risposta rapida

L'hashing converte qualsiasi input in un output di dimensione fissa (hash) utilizzando una funzione unidirezionale. Lo stesso input produce sempre lo stesso hash; input diversi producono hash diversi (resistenza alle collisioni). L'hashing viene utilizzato per l'integrità dei dati, l'archiviazione delle password e le firme digitali. Utilizza il nostro generatore di hash gratuito per calcolare gli hash SHA-256, SHA-1 e MD5 nel tuo browser.

Introduzione

L'hashing è il processo di conversione dei dati di input di qualsiasi dimensione in un output di dimensione fissa chiamato hash o digest. Una funzione hash è l'algoritmo che esegue questa conversione. Le funzioni hash crittografiche hanno proprietà speciali che le rendono utili per l'integrità dei dati, l'archiviazione delle password, le firme digitali e l'indirizzamento dei contenuti. A differenza della crittografia, l'hashing è unidirezionale: non è possibile recuperare l'input dall'hash. Le funzioni hash comuni includono SHA-256 (utilizzata in Bitcoin e TLS), SHA-3 e le precedenti MD5 e SHA-1 (ora non funzionanti per motivi di sicurezza).

Passo dopo passo

  1. Comprendere le proprietà della funzione hash

    Le funzioni hash crittografiche hanno quattro proprietà chiave: (1) Deterministico: lo stesso input fornisce sempre lo stesso output. (2) Veloce da calcolare. (3) Unidirezionale: impossibile recuperare l'input dall'hash. (4) Resistente alle collisioni: impossibile trovare due input diversi con lo stesso hash. (5) Effetto valanga: una piccola variazione degli input modifica drasticamente la produzione.

  2. Impara algoritmi comuni

    SHA-256 (output a 256 bit, 64 caratteri esadecimali) è lo standard moderno, utilizzato in Bitcoin, TLS e firme digitali. SHA-512 è più sicuro ma più lento. SHA-3 è la famiglia più recente. MD5 (128 bit) e SHA-1 (160 bit) sono interrotti per la resistenza alle collisioni e non devono essere utilizzati per la sicurezza.

  3. Distinguere l'hashing dalla crittografia

    L'hashing è unidirezionale: non è possibile invertirlo. La crittografia è bidirezionale: puoi decrittografarla con una chiave. L'hashing serve per integrità e verifica; la crittografia è per la riservatezza. Non utilizzare mai un hash per archiviare i dati che devi recuperare.

  4. Utilizzare l'hashing correttamente

    Per l'integrità dei dati, eseguire l'hashing dei dati e confrontarli con un hash sicuramente valido. Per le password, utilizza un hash di estensione delle chiavi lento (bcrypt, scrypt, Argon2) con un sale univoco, non SHA-256 grezzo, che è troppo veloce e vulnerabile alla forza bruta.

Esempi

Hash SHA-256

Ingresso: Hello, World!

Produzione: dffd6021bb2bd5b0af676290809ec008dfca50a8d29e6ac0a52c2d7e9f0a3b0c

Effetto valanga

Ingresso: Hello, World! (vs Hello, World?)

Produzione: Hash completamente diverso nonostante il cambio di un carattere

MD5 hash (non funzionante, solo legacy)

Ingresso: Hello, World!

Produzione: ed0760733d7505e9ceacf8af225020ac

Problemi comuni

  • Utilizzando MD5 o SHA-1 per la sicurezza: entrambi sono rotti per la resistenza alle collisioni. Utilizza SHA-256 o più potente per qualsiasi scopo di sicurezza.
  • Hashing delle password senza sale: password identiche producono hash identici, consentendo attacchi Rainbow Table. Utilizza bcrypt, scrypt o Argon2 con un sale univoco.
  • Confondere l'hashing con la crittografia: l'hashing è unidirezionale (non può essere invertito); la crittografia è bidirezionale (può essere decrittografata con una chiave).
  • Aspettarsi che gli hash siano univoci: le collisioni sono teoricamente possibili ma praticamente irrealizzabili per algoritmi sicuri (SHA-256 ha 2 ^ 256 possibili output).

Suggerimenti

  • Utilizza SHA-256 per la verifica dell'integrità dei dati, l'indirizzamento dei contenuti e le firme digitali.
  • Per l'archiviazione delle password, utilizzare bcrypt, scrypt o Argon2, non raw SHA-256. Questi algoritmi hanno uno stretching chiave per resistere alla forza bruta.
  • L'hashing è unidirezionale: non utilizzarlo mai per archiviare i dati che devi ripristinare. Utilizza la crittografia per i dati riservati.
  • Utilizza il nostro generatore di hash per calcolare SHA-256 e altri hash istantaneamente nel tuo browser.

Strumenti correlati

Guide correlate

Riferimenti