utilstuff.com
Torna agli Strumenti Dev

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

  1. Inserisci i dati come testo o byte esadecimali.
  2. Scegli la variante CRC corrispondente al tuo protocollo o formato di file.
  3. 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.