Calculatrice de checksum CRC-32 et CRC-32C | Deux polynômes, une entrée
Obtenez le CRC-32 IEEE 802.3 et le CRC-32C Castagnoli depuis un seul texte ou des octets hexadécimaux, côte à côte en hexa et décimal. Conçue pour le moment où un checksum est devant vous et où il faut savoir quel polynôme l'a produit.
💡 À propos de cet outil
La plupart des calculatrices CRC en ligne supposent un seul polynôme sans le dire, et c'est précisément le piège : « CRC-32 » n'est pas un nombre unique. La variante classique IEEE 802.3 (polynôme réfléchi 0xEDB88320) est celle de zip, gzip, PNG et des trames Ethernet. Le CRC-32C de Castagnoli (0x82F63B78) est tout autre : intégré à SCTP, iSCSI, Btrfs et aux métadonnées d'ext4, notamment parce que les processeurs modernes le calculent avec une instruction dédiée.
Quand un débogueur affiche un checksum stocké et que votre code ne concorde pas, la cause habituelle est une confusion de polynôme. Cette calculatrice affiche les deux à la fois pour comparer la valeur inconnue au bon résultat sans refaire votre chaîne d'outils. Passez en mode octets hexa pour saisir les octets bruts tels qu'ils apparaissent dans une capture de paquets ou un éditeur hexadécimal ; les préfixes 0x, espaces, virgules et deux-points sont acceptés.
🧐 Questions fréquentes
Q. Quelle est la différence entre CRC-32 et CRC-32C ?
A. Ils utilisent des polynômes générateurs différents. Le IEEE 802.3 CRC-32 emploie 0xEDB88320 (réfléchi) et apparaît dans zip, gzip et PNG. Le CRC-32C utilise le 0x82F63B78 de Castagnoli, à meilleure détection d'erreurs et accéléré matériellement sur x86 via l'instruction crc32.
Q. Mon checksum ne correspond pas à celui du fichier. Pourquoi ?
A. Au-delà du polynôme, les variantes CRC diffèrent par la réflexion des bits, la valeur initiale et le XOR final. Cet outil utilise les paramètres standard : initial 0xFFFFFFFF, entrée et sortie réfléchies, XOR final 0xFFFFFFFF. Si un format emploie d'autres paramètres, le résultat change même avec le même polynôme.
Q. Comment vérifier que le calcul est correct ?
A. La chaîne de test 123456789 donne 0xCBF43926 pour IEEE CRC-32 et 0xE3069283 pour CRC-32C. Ce sont les valeurs de référence publiées, vous pouvez donc confirmer l'outil avant de l'utiliser sur vos données.
Q. Pourquoi une entrée vide affiche-t-elle 00000000 ?
A. Avec la valeur initiale et le XOR final standard, le CRC de zéro octet s'annule et donne 0x00000000. C'est le résultat correct, pas un bug.
📚 Le saviez-vous
Le choix du CRC-32C pour SCTP et iSCSI n'est pas un hasard. La recherche menée par Guy Castagnoli en 1993 a classé les polynômes selon la distance de Hamming, le plus petit nombre d'erreurs de bit pouvant passer inaperçues. Son polynôme détecte davantage de motifs d'erreur aux longueurs de message courantes que celui d'IEEE. Plus tard, Intel a ajouté une instruction SSE4.2 pour exécuter ce polynôme en matériel, ce qui explique pourquoi les systèmes de fichiers conçus cette décennie privilégient la variante « C » tandis que votre archive zip conserve l'original.