Calcolatore CRC
Calcola e analizza i checksum CRC per verificare l’integrità dei dati.
Che Cos'è un CRC?
Un Cyclic Redundancy Check (CRC) è un breve checksum calcolato da un blocco di dati, pensato per rilevare corruzioni accidentali — un bit invertito per un collegamento di rete difettoso o un errore di archiviazione — non per fornire sicurezza crittografica. Questo strumento supporta decine di varianti standard CRC-16 e CRC-32, tra cui CRC-16/MODBUS, CRC-16/CCITT-FALSE e CRC-32/ISO-HDLC.
Come Usare il Calcolatore CRC
- Inserisci i dati come testo o byte esadecimali.
- Scegli la variante CRC corrispondente al tuo protocollo o formato di file.
- Leggi il checksum calcolato, oppure usa gli strumenti frame/Modbus per costruire e validare un frame di dati completo.
Note Tecniche
- Il CRC serve al rilevamento degli errori, non alla resistenza alle manomissioni — è facile per qualcuno modificare intenzionalmente i dati e ricalcolare un CRC corrispondente, cosa che un hash crittografico o un MAC sono pensati per impedire.
- Varianti CRC diverse usano polinomi, valori iniziali e ordinamenti dei bit diversi, quindi gli stessi dati producono un checksum diverso in ogni variante — fai sempre corrispondere esattamente la variante specificata dal tuo protocollo o formato di file.
Domande frequenti
Un CRC è un hash sicuro?+
No. Un CRC rileva solo modifiche accidentali, come rumore di trasmissione o errori di archiviazione. È banale alterare i dati e ricalcolare di proposito un CRC corrispondente, quindi usa un hash crittografico o un HMAC quando serve resistenza alla manomissione.
Perché gli stessi dati danno valori di CRC diversi in strumenti diversi?+
Perché "CRC-16" o "CRC-32" da solo non è una specifica completa. Il risultato dipende dal polinomio, dal valore iniziale, dal fatto che i bit di ingresso e uscita siano riflessi (RefIn/RefOut) e dal valore XOR finale. Usa esattamente la variante con nome che definisce il tuo protocollo o formato di file.
Cosa significano polinomio, init, RefIn/RefOut e XorOut?+
Il polinomio è il divisore che definisce il CRC. Init è il valore iniziale del registro. RefIn e RefOut controllano se i byte di ingresso e il risultato finale vengono elaborati partendo dal bit meno significativo. XorOut è una costante applicata in XOR al valore finale. Insieme, questi cinque parametri definiscono completamente una variante di CRC.
