Algorithme de Luhn : vérifier et calculer une clé
L’algorithme de Luhn protège les numéros de carte, les IMEI et de nombreux numéros clients contre les fautes de frappe. Saisissez un numéro par ligne : l’outil vérifie le dernier chiffre ou le calcule. Utilisez uniquement des numéros d’exemple ou de test.
Source : ISO/IEC 7812-1, ISO/IEC 7812-1:2017 – Identification cards, Annex: Luhn formula for computing modulus-10 check digits. Mise à jour : .
Comment le calcul est fait
Ne saisissez pas de vraies données de carte. Le calcul s’effectue uniquement dans votre navigateur ; la saisie n’est ni envoyée, ni enregistrée, ni ajoutée à l’adresse de la page. Le résultat est un simple contrôle de format : il ne dit pas si une carte existe, est bloquée ou approvisionnée.
Fonctionnement de l’algorithme de Luhn
- En partant de la droite et sans compter la clé, doubler un chiffre sur deux.
- Si le double dépasse 9, additionner ses chiffres (ce qui revient à retirer 9) : 7 × 2 = 14 → 5.
- Additionner tous les chiffres. La clé complète la somme jusqu’au multiple de 10 suivant.
Exemple 7992739871 : depuis la droite 1→2, 7, 8→16→7, 9, 3→6, 7, 2→4, 9, 9→18→9, 7. Somme 67 ; il manque 3 pour atteindre 70 → numéro complet 79927398713. Pour vérifier, on inclut la clé : la somme doit être divisible par 10 (ici 70).
Où utilise-t-on Luhn ?
Dans les numéros de carte selon ISO/IEC 7812-1 (cartes de paiement et de nombreuses cartes de fidélité), dans le 15e chiffre de l’IMEI des téléphones mobiles (3GPP TS 23.003) et dans beaucoup de numéros de client ou de contrat. L’algorithme détecte toute erreur sur un seul chiffre et presque toutes les inversions de chiffres voisins, sauf « 09 » ↔ « 90 ». Il ne protège pas contre les numéros inventés : un numéro aléatoire sur dix passe le contrôle.
Pour tester, utilisez l’exemple classique 79927398713 ou l’IMEI de la norme 3GPP, 49015420323751-8.
Autres outils de clé de contrôle : clé de contrôle EAN, vérifier un IBAN et vérifier un numéro de TVA intracommunautaire.
Questions fréquentes
Ma carte est-elle valide si elle passe le contrôle de Luhn ?
Non. Le contrôle montre seulement que la suite de chiffres est bien formée. Seule la banque émettrice sait si une carte existe, est active ou approvisionnée. Saisissez vos vraies données de carte uniquement lors du paiement chez le commerçant.
Ma saisie est-elle enregistrée ou transmise ?
Non. Le calcul s’exécute en JavaScript sur votre appareil ; la saisie n’apparaît pas dans l’URL et n’est pas enregistrée dans le navigateur. Utilisez tout de même uniquement des numéros d’exemple ou de test.
Puis-je vérifier un IMEI ?
Oui. L’IMEI à 15 chiffres se termine par une clé de Luhn (3GPP TS 23.003, annexe B). Saisissez les 15 chiffres en mode « vérifier », ou les 14 premiers en mode « calculer ».
Quelles erreurs l’algorithme de Luhn ne détecte-t-il pas ?
L’inversion de 0 et 9 (09 ↔ 90), les erreurs jumelles comme 22 ↔ 55, 33 ↔ 66, 44 ↔ 77, ainsi que plusieurs erreurs simultanées qui se compensent par hasard.
Pourquoi l’émetteur de la carte n’est-il pas identifié ?
L’attribution des premiers chiffres (IIN/BIN) aux émetteurs change en permanence et n’est pas nécessaire pour un contrôle de format. L’outil se limite volontairement à la clé.
Sources et références juridiques
- ISO/IEC 7812-1: ISO/IEC 7812-1:2017 – Identification cards, Annex: Luhn formula for computing modulus-10 check digits
- 3GPP TS 23.003: 3GPP TS 23.003 – Numbering, addressing and identification, Annex B: IMEI check digit (Luhn)
- US Patent 2,950,048 – H. P. Luhn, Computer for verifying numbers (1960)
Dernière mise à jour : · Principes éditoriaux
Outils similaires
- Vérifier un code EAN, GTIN ou ISBNVérifiez la clé de contrôle des codes EAN-8, EAN-13, UPC-A, GTIN-14 et ISBN-10/13, calculez une clé manquante et convertissez un ISBN-10 en ISBN-13.
- Vérifier un IBANVérifiez un IBAN : clé modulo 97, longueur et structure pour 89 pays, banque et BIC pour les IBAN allemands. Tout se passe dans votre navigateur.
- Vérifier une adresse email : la syntaxe RFCVérifiez une ou plusieurs adresses e-mail selon les RFC 5321/5322 : longueurs, domaine, domaines accentués (Punycode). En local, sans envoi.
- Quelle est mon adresse IP ?Affiche instantanément votre adresse IP publique, détecte IPv4 ou IPv6 et explique la différence. Gratuit – votre IP n’est pas stockée.
- Table ASCII avec décimal, hexadécimal, octal, binaire et recherche UnicodeTable ASCII complète (0–127) et Latin-1 (128–255) : décimal, hexa, octal, binaire, entité HTML, caractères de contrôle. Cherchez tout caractère Unicode.
- Vérifier un numéro de TVA intracommunautaireContrôlez le format et la clé d’un numéro de TVA intracommunautaire pour les 27 pays de l’UE et l’Irlande du Nord (XI). En local, avec lien vers VIES.
- Convertir px en remConvertir px en rem avec votre propre taille de base, plus em, pt, pourcentage et vw, et un tableau des tailles de police courantes. Gratuit, sans inscription.
- Minifier du JavaScriptMinifier JavaScript : retirez commentaires et espaces, réduisez le code et voyez le gain en octets. Dans le navigateur, sans envoi.
- Minifier CSS : réduire, formater et inliner le CSS dans le HTMLMinifier CSS et le formater, plus inliner le CSS dans le HTML pour les e-mails : transformations sûres, erreurs avec ligne, dans le navigateur sans envoi.