Calculateur de code de hachage CRC-32B
Publié : 17 février 2025 à 18:24:42 UTC
Calculateur de code de hachage qui utilise la fonction de hachage CRC-32B (Cyclic Redundancy Check 32 bits, variante B) pour calculer un code de hachage basé sur une saisie de texte ou un téléchargement de fichier.CRC-32B Hash Code Calculator
Le contrôle de redondance cyclique (CRC) est un code de détection d'erreurs couramment utilisé pour détecter les modifications accidentelles des données brutes. Bien qu'il ne s'agisse pas techniquement d'une fonction de hachage cryptographique, le CRC-32 est souvent appelé hachage en raison de sa capacité à produire une sortie de taille fixe (32 bits) à partir d'une entrée de longueur variable. La version présentée sur cette page est la variante CRC-32B, qui n'est en fait qu'une particularité du langage PHP qui inverse les bits (little-endian contre big-endian dans le CRC-32 original).
Divulgation complète : je n'ai pas écrit l'implémentation spécifique de la fonction de hachage utilisée sur cette page. Il s'agit d'une fonction standard incluse dans le langage de programmation PHP. J'ai seulement créé l'interface web pour la rendre publiquement disponible ici pour des raisons de commodité.
À propos de l'algorithme de hachage CRC-32B
Je ne suis pas mathématicien, mais je vais essayer d'expliquer cette fonction de hachage avec une analogie simple. Contrairement à de nombreuses fonctions de hachage cryptographiques, ce n'est pas un algorithme particulièrement compliqué, donc ça ira probablement ;-)
Imaginez que vous envoyez une lettre par la poste, mais que vous craignez qu'elle soit endommagée avant d'arriver au destinataire. En fonction du contenu de la lettre, vous calculez une somme de contrôle CRC-32 et l'écrivez sur l'enveloppe. Lorsque le destinataire reçoit la lettre, il peut également calculer la somme de contrôle et voir si elle correspond à ce que vous avez écrit. Si c'est le cas, la lettre n'a pas été endommagée ou modifiée en cours de route.
Le CRC-32 procède selon un processus en quatre étapes :
Étape 1 : ajoutez un peu d’espace supplémentaire (rembourrage)
- Le CRC ajoute un petit espace supplémentaire à la fin du message (comme emballer des cacahuètes dans une boîte).
- Cela lui permet de repérer les erreurs plus facilement.
Étape 2 : La règle magique (le polynôme)
- Le CRC-32 utilise une « règle magique » spéciale pour mesurer les données.
- Considérez cette règle comme un motif de bosses et de rainures (c'est le polynôme, mais ne vous inquiétez pas de ce mot).
- La « règle » la plus courante pour CRC-32 est un modèle fixe.
Étape 3 : Faire glisser la règle (processus de division)
- CRC fait maintenant glisser la règle sur le message.
- À chaque endroit, il vérifie si les bosses et les rainures s'alignent.
- S'ils ne s'alignent pas, le CRC prend note (cela se fait en utilisant un simple XOR, comme en activant ou en désactivant des interrupteurs).
- Il continue de glisser et d'actionner des interrupteurs jusqu'à ce qu'il atteigne la fin.
Étape 4 : Le résultat final (la somme de contrôle)
- Après avoir fait glisser la règle sur l'ensemble du message, il vous reste un petit nombre (32 bits de long) qui représente les données d'origine.
- Ce numéro est comme une empreinte digitale unique du message.
- Il s'agit de la somme de contrôle CRC-32.
La version présentée sur la page est la variante CRC-32B, qui est principalement une particularité de PHP qui inverse l'ordre des bits (little-endian vs big-endian). Vous ne devriez probablement utiliser cette version que si vous avez spécifiquement besoin d'une compatibilité avec une autre application PHP qui l'utilise.
J'ai également des calculatrices pour les autres variantes :