utilstuff.com
Retour aux Outils Dev

Calculateur CRC

Calculez et analysez les sommes de contrôle CRC pour vérifier l’intégrité des données.

Qu'est-ce qu'un CRC ?

Un contrôle de redondance cyclique (CRC) est une courte somme de contrôle calculée à partir d'un bloc de données, conçue pour détecter une corruption accidentelle — un bit inversé dû à une liaison réseau défectueuse ou une erreur de stockage — et non pour fournir une sécurité cryptographique. Cet outil prend en charge des dizaines de variantes standard de CRC-16 et CRC-32, dont CRC-16/MODBUS, CRC-16/CCITT-FALSE et CRC-32/ISO-HDLC.

Comment utiliser le calculateur CRC

  1. Saisissez les données sous forme de texte ou d'octets hexadécimaux.
  2. Choisissez la variante de CRC correspondant à votre protocole ou format de fichier.
  3. Consultez la somme de contrôle calculée, ou utilisez les outils de trame/Modbus pour construire et valider une trame de données complète.

Notes techniques

  • Le CRC sert à la détection d'erreurs, pas à la résistance à la falsification — il est facile pour quelqu'un de modifier intentionnellement des données et de recalculer un CRC correspondant, ce qu'un hachage cryptographique ou un MAC est conçu pour empêcher.
  • Les différentes variantes de CRC utilisent des polynômes, valeurs initiales et ordres de bits différents, si bien que les mêmes données produisent une somme de contrôle différente selon la variante — faites toujours correspondre la variante exacte spécifiée par votre protocole ou format de fichier.

Questions fréquentes

Un CRC est-il un hachage sécurisé ?+

Non. Un CRC ne détecte que les modifications accidentelles, comme le bruit de transmission ou les erreurs de stockage. Il est trivial de modifier des données et de recalculer volontairement un CRC correspondant : utilisez un hachage cryptographique ou un HMAC si vous avez besoin de résistance à l'altération.

Pourquoi les mêmes données donnent-elles des valeurs de CRC différentes selon les outils ?+

Parce que « CRC-16 » ou « CRC-32 » seul n'est pas une spécification complète. Le résultat dépend du polynôme, de la valeur initiale, du fait que les bits d'entrée et de sortie soient réfléchis (RefIn/RefOut) et de la valeur du XOR final. Utilisez exactement la variante nommée que définit votre protocole ou format de fichier.

Que signifient polynôme, init, RefIn/RefOut et XorOut ?+

Le polynôme est le diviseur qui définit le CRC. Init est la valeur initiale du registre. RefIn et RefOut indiquent si les octets d'entrée et le résultat final sont traités en commençant par le bit de poids faible. XorOut est une constante appliquée par XOR à la valeur finale. Ensemble, ces cinq paramètres définissent entièrement une variante de CRC.