Calcolatrice del codice hash CRC-32C
Pubblicato: 17 febbraio 2025 alle ore 18:44:51 UTC
Ultimo aggiornamento: 12 gennaio 2026 alle ore 11:37:24 UTC
CRC-32C Hash Code Calculator
Il controllo di ridondanza ciclico (CRC) è un codice di rilevamento degli errori comunemente utilizzato per rilevare modifiche accidentali ai dati grezzi. Sebbene non sia tecnicamente una funzione hash crittografica, il CRC-32 è spesso definito hash per la sua capacità di produrre un output di dimensione fissa (32 bit) da un input di lunghezza variabile. La versione presentata in questa pagina è la variante CRC-32C, una versione più recente e "intelligente" (con un migliore rilevamento degli errori), spesso accelerata tramite hardware sulle CPU moderne (tramite SSE 4.2).
Informazioni complete: non ho scritto l'implementazione specifica della funzione hash utilizzata in questa pagina. Si tratta di una funzione standard inclusa nel linguaggio di programmazione PHP. Ho solo creato l'interfaccia web per renderla pubblicamente disponibile qui per comodità.
Informazioni sull'algoritmo hash CRC-32C
Non sono un matematico, ma cercherò di spiegare questa funzione hash con una semplice analogia. A differenza di molte funzioni hash crittografiche, non è un algoritmo particolarmente complicato, quindi probabilmente andrà bene ;-)
Immagina di spedire una lettera per posta, ma temi che possa danneggiarsi prima di arrivare al destinatario. In base al contenuto della lettera, calcoli un checksum CRC-32 e lo scrivi sulla busta. Quando il destinatario riceve la lettera, può calcolare a sua volta il checksum e verificare se corrisponde a quanto scritto. In tal caso, la lettera non è stata danneggiata o modificata durante il trasporto.
Il CRC-32 esegue questa operazione seguendo un processo in quattro fasi:
Passaggio 1: aggiungere un po' di spazio extra (imbottitura)
- Il CRC aggiunge un po' di spazio extra alla fine del messaggio (come quando si imballano le arachidi in una scatola).
- Ciò aiuta a individuare più facilmente gli errori.
Fase 2: Il righello magico (il polinomio)
- CRC-32 utilizza uno speciale "righello magico" per misurare i dati. Pensa a questo righello come a uno schema di protuberanze e scanalature (questo è il polinomio, ma non preoccuparti di questa parola). Il "righello" più comune per CRC-32 è uno schema fisso.
Fase 3: Spostamento del righello (processo di divisione)
- Ora CRC fa scorrere il righello sul messaggio. In ogni punto, controlla se le protuberanze e le scanalature sono allineate. Se non sono allineate, CRC prende nota (ciò avviene tramite un semplice XOR, come accendere o spegnere gli interruttori). Continua a far scorrere e a girare gli interruttori finché non raggiunge la fine.
Fase 4: Il risultato finale (il checksum)
- Dopo aver fatto scorrere il righello sull'intero messaggio, ti rimane un piccolo numero (lungo 32 bit) che rappresenta i dati originali. Questo numero è come un'impronta digitale univoca del messaggio. Questo è il checksum CRC-32.
La versione presentata nella pagina è la variante CRC-32C, che dovrebbe essere la variante preferita, soprattutto se si utilizza una CPU con accelerazione hardware (SSE 4.2 e versioni successive) e non è necessaria la compatibilità con altre varianti.
Ho anche delle calcolatrici per le altre varianti:
- Collegamento
- Collegamento
Ulteriori letture
Se ti è piaciuto questo post, potrebbero piacerti anche questi suggerimenti:
- Calcolatrice del codice hash HAVAL-160/4
- Calcolatrice del codice hash XXH-128
- Calcolatrice del codice hash SHA-224
