Comment fonctionnent les sommes de contrôle
Les numéros de carte, les IBAN, les identifiants fiscaux et les adresses crypto comportent tous un ou deux chiffres supplémentaires cachés, calculés à partir des autres. S'il y a une faute de frappe sur un seul caractère, l'opération arithmétique ne correspond plus — c'est ainsi qu'un validateur peut signaler une erreur instantanément, hors ligne, sans avoir besoin de consulter une banque ou une blockchain.
Qu'est-ce qu'une somme de contrôle ?
Une somme de contrôle (ou chiffre de contrôle) est une redondance intentionnelle. Lorsqu'un nombre est émis, un ou plusieurs de ses chiffres ne sont pas choisis librement : ils sont calculés à partir du reste selon une formule fixe. Toute personne connaissant cette formule peut ensuite recalculer ces chiffres et les comparer. S'ils correspondent, le nombre est cohérent au niveau interne. Sinon, il y a eu une faute de frappe, une mauvaise lecture ou une corruption.
C'est tout ce qu'une somme de contrôle garantit. Elle ne dit rien sur l'existence du compte, son propriétaire ou son contenu — un point que chaque validateur de ce site rappelle sans cesse, car les deux notions sont faciles à confondre.
Exemple détaillé 1 — Luhn, l'algorithme des numéros de carte
Luhn est utilisé par Visa, Mastercard et la plupart des autres cartes de paiement. Prenez l'exemple classique 7992 7398 713. En partant du chiffre le plus à droite, doublez chaque deuxième chiffre ; si le résultat du doublement est un nombre à deux chiffres, additionnez ses chiffres entre eux. Ensuite, faites la somme de tout.
| Chiffre | Position depuis la droite | Doublé ? | Compte comme |
|---|---|---|---|
3 | Chiffre de contrôle | — | 3 |
1 | Le 2e en partant de la droite | 1 × 2 = 2 | 2 |
7 | Le 3e | — | 7 |
8 | Le 4e | 8 × 2 = 16 → 1 + 6 | 7 |
9 | Le 5e | — | 9 |
3 | Le 6e | 3 × 2 = 6 | 6 |
7 | Le 7e | — | 7 |
2 | Le 8e | 2 × 2 = 4 | 4 |
9 | Le 9e | — | 9 |
9 | Le 10e | 9 × 2 = 18 → 1 + 8 | 9 |
7 | 11e | — | 7 |
La colonne de droite donne la somme 3 + 2 + 7 + 7 + 9 + 6 + 7 + 4 + 9 + 9 + 7 = 70. Soixante-dix est divisible par dix, donc le numéro est valide. Modifiez un seul chiffre et la somme ne sera plus un multiple de dix. Essayez-le sur le Validateur de carte de crédit : il effectue ce même calcul sur votre appareil.
Exemple pratique n°2 — une somme pondérée (ISBN-10)
De nombreux numéros d'identité nationale utilisent une somme pondérée : multiplier chaque chiffre par un poids fixe, les additionner et vérifier le reste. L'ISBN-10 en est l'exemple le plus clair. Pour 0-306-40615-2, les poids vont de 10 à 1 :
0×10 + 3×9 + 0×8 + 6×7 + 4×6 + 0×5 + 6×4 + 1×3 + 5×2 + 2×1 = 132
132 correspond exactement à 11 × 12, donc le reste modulo 11 est nul et l'ISBN est valide. Le CPF au Brésil, le PESEL en Pologne et des dizaines d'autres identifiants suivent le même principe avec leurs propres poids et modules — c'est pourquoi un Validateur d’ID par lot peut en vérifier des milliers en une seconde.
Exemple pratique n°3 — IBAN et mod 97
Les numéros de compte bancaire internationaux utilisent la norme ISO 7064 mod 97-10, un système plus robuste avec deux chiffres de contrôle. Prenez l'exemple type GB82 WEST 1234 5698 7654 32 :
- Vérifiez la longueur selon le pays : un IBAN britannique comporte 22 caractères. ✓
- Déplacez les quatre premiers caractères à la fin :
WEST12345698765432GB82. - Remplacez chaque lettre par deux chiffres (A = 10 … Z = 35) : W→32, E→14, S→28, T→29, G→16, B→11, ce qui donne
3214282912345698765432161182. - Divisez ce nombre par 97. Le reste doit être exactement 1 — et c'est bien le cas.
Comme 97 est un nombre premier et supérieur à tout échange de deux chiffres, le mod 97 détecte toute erreur de caractère ou toute transposition ; seulement environ un chaîne aléatoire sur 97 passerait par hasard. Le Validateur IBAN indique si chaque étape est réussie ou non.
Adresses crypto : des sommes de contrôle générées à partir d'empreintes.
Les adresses Bitcoin et Ethereum imposent des exigences plus strictes, car une faute de frappe y envoie l'argent à personne, de manière définitive. Les anciennes adresses Bitcoin (1…, 3…) utilisent Base58Check : la charge utile de l'adresse est passée deux fois dans SHA-256 et les quatre premiers octets du résultat sont ajoutés en tant que somme de contrôle. Un seul caractère erroné modifie complètement l'empreinte, donc les chances qu'une faute de frappe passe inaperçue sont d'environ une sur quatre milliards. Les nouvelles adresses bc1… utilisent Bech32 ou Bech32m, un code correcteur d'erreurs qui garantit la détection de toute erreur affectant jusqu'à quatre caractères. L'EIP-55 d'Ethereum cache sa somme de contrôle dans le motif des lettres majuscules et minuscules.
Le Validateur d'adresses Bitcoin et le Validateur d'adresses Ethereum mettent en œuvre ces algorithmes dans le navigateur et se vérifient eux-mêmes par rapport aux vecteurs de test officiels à chaque chargement de page.
Aperçu des schémas
| Schéma | Utilisé par | Détecte | Probabilité qu'une erreur aléatoire passe inaperçue |
|---|---|---|---|
| Luhn (modulo 10) | Cartes de crédit & de débit, IMEI, nombreux documents d'identité nationaux | Toute erreur sur un chiffre et la plupart des échanges adjacents | Environ 1 sur 10 |
| ISO 7064 modulo 97-10 | IBAN, certain numéros fiscaux et d'entreprise | Chaque erreur isolée et chaque transposition | Environ 1 sur 97 |
| Somme pondérée, mod 10 ou 11 | ISBN-10, le CPF brésilien, le PESEL polonais et de nombreux identifiants | Erreurs isolées et la plupart des transpositions | Environ 1 sur 10 ou 1 sur 11 |
| Base58Check (double SHA-256, 4 octets) | Adresses Bitcoin héritées (1…, 3…) | Toute faute de frappe, avec une probabilité écrasante | Environ 1 sur 4 milliards |
| Bech32 / Bech32m (code BCH) | Adresses Bitcoin SegWit et Taproot (bc1…) | Garanti : toute erreur affecte jusqu'à 4 caractères. | Moins d'1 sur un milliard. |
| EIP-55 (casing keccak-256) | Adresses Ethereum | Fautes de frappe, grâce au modèle de lettres en majuscules et minuscules. | Très faible pour une saisie en casse mixte. |
Pourquoi un validateur devrait-il s'exécuter sur votre appareil ?
Tout ce qui précède correspond à des opérations arithmétiques sur des chiffres que vous possédez déjà. Il n'y a aucune raison pour qu'un validateur envoie un numéro de carte, un identifiant fiscal ou une adresse de portefeuille à un serveur — et une très bonne raison de ne pas le faire. Chaque validateur sur ce site s'exécute localement ; la liste des outils hors ligne les regroupe, et notre guide pour vérifier si un outil télécharge vos données montre comment confirmer cela pour tout site en vingt secondes.
FAQ
Un checksum valide signifie-t-il que le numéro est réel ou actif ?
Non. Un checksum prouve uniquement que les chiffres sont cohérents entre eux — que le numéro pourrait exister. Il ne peut pas indiquer si le compte est ouvert, qui en est le propriétaire ou quel est son solde. Chaque validateur sur ce site l'indique sur la page, car cette distinction est importante.
Quelle est la probabilité qu’un numéro erroné soit quand même accepté ?
Cela dépend du schéma utilisé. Un seul chiffre de contrôle mod-10 laisse passer environ 1 erreur aléatoire sur 10 ; le mod 97 de l'IBAN laisse passer environ 1 erreur sur 97 ; une somme de contrôle Base58Check de 4 octets laisse passer environ 1 erreur sur 4 milliards. La propriété essentielle est que les erreurs humaines courantes — un chiffre mal saisi, deux chiffres échangés — sont toutes détectées par ces méthodes.
Pourquoi certains identifiants n’ont-ils aucune somme de contrôle ?
Les schémas plus anciens ou plus simples ont été conçus pour être consultés dans un registre plutôt que pour être vérifiés hors ligne, et certains systèmes de numérotation précèdent simplement cette pratique. Pour ceux-ci, un validateur ne peut vérifier que la longueur et le format.
Est-il sûr de coller mon numéro de carte ou d’identité dans un validateur ?
Seulement si la validation s’exécute sur votre appareil. Une somme de contrôle est un calcul basé sur des chiffres que vous possédez déjà, il n’y a donc aucune raison légitime pour qu’un validateur les envoie à un serveur. Vous pouvez confirmer qu’un outil fonctionne localement grâce au test en mode avion décrit dans notre guide pour vérifier si un outil télécharge vos données.
Quelle est la différence entre une somme de contrôle, un hachage et le chiffrement ?
Une somme de contrôle est un petit chiffre de contrôle conçu pour détecter les fautes de frappe accidentelles. Un hachage cryptographique est une empreinte longue conçue pour que même un changement intentionnel soit détectable et que l’original ne puisse pas être reconstitué. Le chiffrement transforme les données afin qu’elles ne puissent être lues qu’avec une clé. Base58Check utilise un hachage pour créer sa somme de contrôle, c’est pourquoi il est si difficile de la tromper par accident.