Calculateur de code de hachage CRC-32B
Publié : 17 février 2025 à 18 h 39 min 05 s 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 que ce ne soit pas techniquement 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 réalité 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 avec le langage de programmation PHP. J'ai seulement créé l'interface Web pour la rendre accessible au public ici pour plus de commodité.
À propos de l'algorithme de hachage CRC-32B
Je ne suis pas un mathématicien, mais je vais essayer d'expliquer cette fonction de hachage avec une analogie simple. Contrairement à de nombreuses fonctions de hachage cryptographique, 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. Selon le 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 aussi 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 suit 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 arachides dans une boîte).
- Ça 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 en faites pas pour 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 (ceci se fait en utilisant un simple XOR, comme en activant ou en désactivant des interrupteurs).
- Il continue de glisser et d'actionner des commutateurs 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 devriez probablement utiliser cette version seulement si vous avez spécifiquement besoin d'une compatibilité avec une autre application PHP qui l'utilise.
J'ai aussi des calculatrices pour les autres variantes :