Outil pour calculer rapidement ou vérifier l'intégrité des données avec le CRC-32, idéal pour détecter les erreurs de transmission et garantir la fiabilité.
CRC-32 - dCode
Catégorie(s) : Somme de Contrôle
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Le CRC-32 (Cyclic Redundancy Check, 32 bits) est une méthode de vérification d'intégrité des données qui utilise un algorithme mathématique pour générer une empreinte à partir de données binaires.
Cette empreinte permet de détecter les erreurs accidentelles lors du stockage ou de la transmission des données.
Le fonctionnement du CRC-32 repose sur l'opération de division polynomiale binaire en traiter les données comme un grand polynôme binaire.
Exemple : La séquence binaire 1101 peut être représentée par le polynôme $ 1 \times x^3 + 1 \times x^2 + 0 \times x^1 + 1 \times x^0 = x^3 + x^2 + x^0 $ (avec x correspondent à la position des bits à 1, en commençant par 0 à droite).
Le CRC s'appuie ensuite sur un polynôme binaire prédéfini, appelé polynôme générateur (ou diviseur). Pour le CRC-32, le polynôme générateur standard est 04C11DB7 (hexadecimal) soit 100110000010001110110110111 (binaire) soit le polynome de degré 32 $ x^{32} + x{26} + x^{23} + x^{22} + x^{16} + x^{12} + x^{11} + x^{10} + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + x^0 $.
La division polynomiale binaire a un reste (qui a une longueur inférieure à celle du polynôme générateur). Pour le CRC-32, le reste sera un bloc de 32 bits. C'est cette séquence de 32 bits qui constitue le code CRC-32.
Le CRC-32 est léger et rapide, ce qui en fait un excellent choix pour détecter les erreurs dans les données transmises ou stockées. Bien qu'il ne prévienne pas les erreurs ou ne les corrige pas, il permet de les identifier avec une grande précision. Le CRC-32 est répandu dans les communications réseau, les systèmes de stockage, certains formats de fichier (comme ZIP ou PNG), et recommandé dans environnement nécessitant une validation rapide de l'intégrité des données.
Le CRC-32 n'est pas à l'abri des collisions, deux ensembles de données différents peuvent produire le même checksum, bien que cela reste rare.
Une empreinte CRC-32 est généralement représentée par 8 caractères hexadécimaux (soit 32 bits binaires).
Stockées, elles peuvent être affichées comme une valeur numérique entre 0 et 4294967295.
Le CRC32C (Cyclic Redundancy Check 32 bits Castagnoli) est une variante du CRC-32 qui utilise un polynôme générateur différent pour calculer la somme de contrôle. Le CRC32-C est basé sur le polynôme générateur 1EDC6F41 (hexadecimal).
Cette évolution lui attribue de de meilleures performances en matière de détection d'erreurs que le CRC32 standard qu'il tend à remplacer.
Il est crucial de noter que le CRC32 et le CRC32C ne sont pas compatibles. Les deux algorithmes produiront des sommes de contrôle différentes pour les mêmes données.
dCode se réserve la propriété du code source pour "CRC-32". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "CRC-32", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "CRC-32" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "CRC-32" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "CRC-32" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
CRC-32 sur dCode.fr [site web en ligne], consulté le 19/01/2025,