Menu
Coddy logo textTech

Qu'est-ce qu'un checksum (somme de contrôle) ?

Un checksum, ou somme de contrôle, est une courte valeur calculée à partir d'un bloc de données, comme un fichier ou un paquet réseau, et stockée ou envoyée avec lui. En la recalculant plus tard et en comparant les deux valeurs, on voit si les données ont changé à cause d'une corruption ou d'une erreur de transmission.

Par Kevin Spektor, Cofondateur et CTO

Mis à jour le 24 septembre 2026

ChecksumEnvoyéReçuRésultat
Somme des octets (mod 256)6868Identique
CRC-32777CB658777CB658Identique

Inverse un bit et les deux checksums changent. Échange deux caractères : tous les octets sont toujours là, donc leur somme reste la même. Seul CRC-32, qui dépend de l'ordre, s'en aperçoit.

Les distributions Linux comme Ubuntu et Debian publient un fichier nommé SHA256SUMS à côté de leurs images d'installation. Chaque ligne contient une chaîne de 64 caractères et un nom de fichier. Une fois le téléchargement terminé, tu lances une commande sur le fichier reçu. Si elle affiche la même chaîne, ses milliards d'octets sont tous arrivés intacts. Si un seul bit s'est inversé en chemin, la chaîne obtenue est complètement différente.

Cette chaîne est un checksum (somme de contrôle) : un petit résumé qui change quand les données changent.

Comment fonctionne un checksum, étape par étape

  1. L'émetteur applique un algorithme de checksum aux données, octet par octet, et obtient un court résultat.
  2. Le résultat voyage ou est stocké avec les données : dans l'en-tête d'un paquet réseau, dans un fichier ZIP à côté de chaque fichier compressé, ou sur une page de téléchargement.
  3. Le destinataire applique le même algorithme aux données qu'il a réellement reçues.
  4. Les deux résultats sont comparés. S'ils sont égaux, les données n'ont presque certainement pas changé. S'ils diffèrent, les données ont été abîmées, et le destinataire les rejette, les redemande ou affiche une erreur de checksum.

Un checksum ne fait que détecter les dégâts ; il ne peut pas dire quel octet a changé ni le réparer. Pour réparer, il faut un code correcteur d'erreurs, comme les codes de Reed-Solomon des CD et des QR codes.

Le checksum le plus simple additionne tous les octets et garde les 8 derniers bits du total. Lance ceci pour voir où cette idée fonctionne et où elle échoue :

original  sum= 78  crc32=a1628836
flipped   sum= 80  crc32=a597580b
swapped   sum= 78  crc32=59dbf74b

Changer un caractère change la somme. Échanger deux caractères ne la change pas, car l'addition ne tient pas compte de l'ordre, donc la somme des octets valide un paiement de 10 au lieu de 100. CRC-32 (contrôle de redondance cyclique) traite les données comme un long nombre binaire et le divise par un polynôme fixe de 33 bits ; le reste de 32 bits dépend de la position de chaque bit, donc l'échange est détecté. La démo ci-dessus te permet d'essayer avec ton propre texte. CRC-32 détecte toute rafale d'erreurs d'une longueur allant jusqu'à 32 bits.

Algorithmes de checksum courants

AlgorithmeTailleOù tu le rencontres
Bit de parité1 bitLiaisons série, mémoire à parité
Chiffre de contrôle de Luhn1 chiffreNuméros de carte bancaire, numéros IMEI
Somme de contrôle Internet16 bitsEn-têtes IPv4, TCP et UDP
Adler-3232 bitsLe format compressé zlib
CRC-3232 bitsZIP, gzip, PNG, trames Ethernet
MD5128 bitsAnciennes pages de téléchargement, outils de recherche de doublons
SHA-256256 bitsTéléchargements de logiciels, images Linux, Bitcoin

Les cinq premiers détectent les accidents, pas les attaquants. Quelqu'un qui modifie un fichier peut ajuster quelques octets pour que son CRC-32 corresponde à nouveau. MD5 et SHA-256 sont des fonctions de hachage cryptographiques, conçues pour qu'il soit impossible en pratique de trouver deux entrées qui donnent la même sortie. MD5 a depuis été cassé (des collisions ont été publiées en 2004), tout comme SHA-1 (2017), donc les téléchargements sensibles pour la sécurité utilisent SHA-256 ou plus fort. MD5 détecte toujours très bien les corruptions accidentelles.

Comment vérifier un checksum

Sur ton propre ordinateur, chaque système d'exploitation a une commande intégrée :

# Windows (PowerShell)
Get-FileHash ubuntu.iso -Algorithm SHA256
# macOS
shasum -a 256 ubuntu.iso
# Linux
sha256sum ubuntu.iso

Compare la sortie avec la valeur de la page de téléchargement officielle ; les majuscules et les minuscules n'ont pas d'importance. En Python, hashlib fait la même vérification, en lisant le fichier par morceaux pour qu'un fichier de 6 Go n'ait jamais à tenir en mémoire :

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
OK

Remplace hello world par hello World et relance : chaque caractère du checksum change, et la dernière ligne affiche Checksum mismatch.

Qu'est-ce qu'une erreur de checksum ?

Une erreur de checksum signifie que la vérification a échoué : la valeur calculée à partir des données que tu as ne correspond pas à la valeur stockée ou envoyée avec elles. Soit les données ont changé, soit c'est le checksum stocké qui a été abîmé. Le message et la solution dépendent de l'endroit où elle apparaît.

Erreur de checksum CMOS ou BIOS au démarrage

Le firmware d'un PC (BIOS ou UEFI) conserve ses réglages, comme l'ordre de démarrage et l'horloge, dans une petite mémoire maintenue en vie par une pile bouton, généralement une CR2032, quand l'ordinateur est débranché. Un checksum de ces réglages est stocké à côté d'eux. À chaque démarrage, le firmware le recalcule, et si les valeurs diffèrent, il affiche un message comme CMOS Checksum Error - Defaults Loaded et revient aux réglages d'usine.

La cause habituelle est une pile faible ou morte, surtout quand l'horloge se réinitialise aussi. Une coupure de courant pendant l'enregistrement des réglages, ou un effacement du CMOS avec un cavalier, a le même effet. Pour corriger :

  1. Ouvre l'écran de configuration (en général Suppr ou F2 pendant le démarrage du PC), règle la date, l'heure et les réglages que tu avais modifiés, puis enregistre et quitte (souvent F10). Si le message ne revient pas, c'était un événement ponctuel.
  2. S'il revient après chaque démarrage à froid, éteins, débranche l'ordinateur et remplace la pile CR2032.
  3. Si le message nomme le firmware lui-même, comme BIOS ROM checksum error ou Main BIOS checksum error, l'image du firmware est endommagée. Les cartes mères équipées d'une puce BIOS de secours la restaurent automatiquement ; sur les autres, utilise la fonction de récupération du BIOS de la carte ou reflashe le firmware depuis le site du fabricant, sans couper le courant pendant la mise à jour.

Checksum qui ne correspond pas après un téléchargement

Le SHA-256 de ton fichier ne correspond pas à celui de la page de téléchargement. Le fichier est peut-être incomplet ou corrompu (une connexion interrompue, un disque plein), tu compares peut-être avec le checksum d'un autre fichier (une autre version ou une autre architecture de processeur), ou tu compares peut-être deux algorithmes différents : une valeur MD5 fait 32 caractères hexadécimaux, une valeur SHA-256 en fait 64. Plus rarement, le fichier a été falsifié.

Vérifie l'algorithme et le nom du fichier, puis télécharge à nouveau le fichier depuis le site officiel. Si une copie neuve venant de la source officielle ne correspond toujours pas, ne l'exécute pas. Les gestionnaires de paquets font cette vérification pour toi : pip s'arrête avec THESE PACKAGES DO NOT MATCH THE HASHES quand un paquet téléchargé diffère du hash épinglé.

Erreur de checksum dans une archive ZIP, RAR ou 7z

Les formats d'archive stockent un CRC-32 du contenu d'origine de chaque fichier. À l'extraction, l'outil le recalcule ; WinRAR signale une différence sous la forme Checksum error et 7-Zip sous la forme CRC Failed. Pour une archive chiffrée, un mauvais mot de passe produit le même message, car un mauvais mot de passe déchiffre des données en bouillie. Télécharge à nouveau l'archive, vérifie que toutes les parties d'une archive découpée (.part1.rar, .part2.rar) sont présentes et viennent du même envoi, et retape le mot de passe. La commande de réparation d'archive de WinRAR fonctionne mieux sur les archives créées avec un enregistrement de récupération, et l'option « Conserver les fichiers endommagés » garde tout ce qui a été extrait correctement.

Erreurs de checksum dans les jeux et les outils réseau

Les jeux comparent les checksums de leurs fichiers, donc une mise à jour partielle ou un fichier modifié fait échouer la vérification. Dans Steam, « Vérifier l'intégrité des fichiers du jeu » télécharge à nouveau chaque fichier dont le checksum ne correspond pas. Dans Wireshark, les avertissements de checksum sur les paquets envoyés par ton propre ordinateur ne sont généralement pas de vraies erreurs : la carte réseau remplit le checksum après que Wireshark a déjà capturé le paquet.

Idées reçues

  • « Un checksum qui correspond prouve que le fichier est sûr. » Il prouve que le fichier correspond à la valeur publiée. Si un attaquant contrôle le site web, il peut changer les deux, et c'est pour cela que les projets signent aussi leurs fichiers de checksums avec une clé.
  • « Un checksum peut réparer un fichier corrompu. » Il ne fait que détecter les dégâts. La solution, c'est d'obtenir une bonne copie.
  • « Checksum et hash sont deux choses différentes. » Checksum décrit la tâche ; une fonction de hachage comme SHA-256 est un des outils qui peuvent l'accomplir.

Pour aller plus loin

Calcule les valeurs MD5, SHA-1 et SHA-256 de n'importe quel texte avec le générateur de hash. Les checksums travaillent sur des données brutes, donc qu'est-ce qu'un octet et qu'est-ce qu'un bit expliquent ce qui est réellement additionné. Une base de données utilise des checksums de pages pour détecter la corruption du disque, et la visualisation de la table de hachage montre un autre usage d'une courte valeur calculée à partir de données.

Questions fréquentes

SHA-256 est-il un checksum ?
Oui, quand on l'utilise pour vérifier des données. SHA-256 est une fonction de hachage cryptographique, et la valeur de 64 caractères qu'elle produit pour un fichier est couramment appelée le checksum SHA-256 de ce fichier. Elle est plus lente que CRC-32, mais elle protège aussi contre les modifications volontaires, car personne ne peut en pratique construire un autre fichier avec la même valeur SHA-256.
Comment corriger une erreur de checksum ?
Cela dépend de l'endroit où elle apparaît. Au démarrage, ouvre la configuration du BIOS, vérifie la date et les réglages, enregistre et quitte, puis remplace la pile bouton du CMOS si l'erreur revient. Après un téléchargement ou dans une archive, télécharge à nouveau le fichier depuis la source officielle, et vérifie que toutes les parties d'une archive découpée sont présentes et que le mot de passe est le bon.
Qu'est-ce qui provoque une erreur de checksum ?
Les données ont changé entre le moment où leur checksum a été calculé et le moment où il a été vérifié. Les causes courantes sont un téléchargement interrompu, un disque ou une clé USB défaillants, une pile CMOS faible, une coupure de courant pendant l'écriture des réglages ou du firmware, et un mauvais mot de passe sur une archive chiffrée.
Pourquoi un checksum est-il nécessaire ?
Le stockage et les réseaux ne sont pas parfaits. Des bits s'inversent à cause du bruit électrique, des interférences radio, d'une mémoire flash usée ou de disques défaillants, et sans vérification, les données abîmées seraient utilisées sans que personne ne s'en aperçoive. Un checksum est un moyen peu coûteux de remarquer les dégâts pour que les données soient renvoyées ou rejetées.
Comment générer un checksum ?
Applique un algorithme de checksum aux données. Pour un fichier, utilise sha256sum file sous Linux, shasum -a 256 file sur macOS ou Get-FileHash file dans Windows PowerShell. En Python, hashlib.sha256(data).hexdigest() donne un checksum SHA-256 et zlib.crc32(data) un CRC-32.
Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER