search

Found

info Aperçu

Outil Luhn (Mod 10) en deux modes : VERIFY valide un numéro de carte/IMEI ; GENERATE produit le chiffre de contrôle avec une trace par chiffre.

📘 Mode d'emploi

  1. Sélectionnez le mode VERIFY (validation d'un numéro complet) ou GENERATE (calcul du chiffre de contrôle manquant)
  2. Collez la suite de chiffres dans le champ de saisie ; les espaces et les tirets sont supprimés automatiquement
  3. Lisez le verdict Valide / Invalide ou le chiffre de contrôle calculé dans le panneau de résultat
  4. Comparez la table de doublement, somme des chiffres et total cumulé avec votre propre implémentation

Calculateur de somme de contrôle Luhn

Saisissez des chiffres à vérifier
Article

Calculateur de somme de contrôle Luhn | Vérifiez ou générez le Mod 10 avec une table de trace par chiffre

Un calculateur Luhn (Mod 10) à deux modes pour les numéros de carte bancaire, les IMEI et le NAS canadien. Validez un numéro complet ou produisez le chiffre de contrôle manquant, avec une table de 5 colonnes qui expose pour chaque chiffre la position, la valeur doublée, la somme des chiffres et le total cumulé.

💡 À propos de cet outil

L'algorithme de Luhn occupe une place curieuse dans l'écosystème logiciel : universellement déployé sur des milliards de cartes émises par Visa, Mastercard, Carte Bancaire et leurs équivalents internationaux, mais rarement détaillé au-delà du verdict binaire « valide / invalide » dans les outils en ligne. Lorsque l'on développe soi-même une fonction de contrôle — par exemple pour la conformité PCI-DSS d'un module de paiement français, pour un script de test d'intégration Stripe ou pour un validateur d'IMEI dans un dispositif télécoms — il devient nécessaire de comparer le calcul à une implémentation de référence chiffre par chiffre.

Cet outil expose chaque étape du calcul dans une table à cinq colonnes : indice de position depuis la droite, chiffre brut, valeur doublée (lorsque la position est paire), somme des chiffres résultante (16 → 1 + 6 = 7) et total cumulé. Le mode VERIFY traite un numéro complet et vérifie que le total mod 10 vaut zéro. Le mode GENERATE traite un numéro tronqué (sans le chiffre de contrôle) et calcule le chiffre final qui rendrait le total divisible par 10.

Le champ de saisie tolère les groupements visuels usuels : espaces (4532 0151 1283 0366), tirets (4532-0151-1283-0366) ou la suite brute. Une normalisation interne ne conserve que les chiffres avant de lancer le calcul.

🧐 Questions fréquentes

Quand utiliser VERIFY plutôt que GENERATE ? VERIFY répond à la question « ce numéro respecte-t-il la contrainte Mod 10 ? ». GENERATE répond à « quel chiffre faut-il ajouter à la fin pour que la contrainte soit respectée ? ». GENERATE est l'outil naturel lors de la fabrication de données de test, lorsque la suite de cartes Stripe testmode ne suffit pas et qu'il faut synthétiser un PAN sur un BIN précis.

Comment fonctionne le doublement lorsque le résultat dépasse 9 ? On somme les chiffres du produit : 8 × 2 = 16 devient 1 + 6 = 7. La transformation équivalente doublé − 9 est algébriquement identique pour les chiffres 5 à 9 et plus rapide en pratique, mais cet outil affiche la version par somme de chiffres, qui est celle décrite dans le brevet d'origine de Luhn et dans la plupart des supports pédagogiques.

L'algorithme s'applique-t-il aux IMEI et autres identifiants ? Oui, pour tous ceux fondés sur Luhn Mod 10 : cartes bancaires (ISO/IEC 7812), IMEI de téléphones mobiles (3GPP TS 23.003, 15 chiffres), NAS canadien (9 chiffres), NPI américain (10 chiffres, identifiant prestataire de santé). En revanche l'ISBN-10 utilise un Mod 11, et l'ISBN-13 ainsi que l'EAN appliquent un Mod 10 pondéré 1-3 ; ils ne sont pas pris en charge ici.

Luhn assure-t-il une sécurité cryptographique ? Non. L'algorithme a été conçu en 1954 pour détecter les erreurs humaines de transcription : substitution d'un chiffre, ou transposition de deux chiffres adjacents (à l'exception notable du couple 09). Il n'offre aucune protection contre la fabrication intentionnelle d'un numéro valide. Pour authentifier, on superpose à Luhn une signature cryptographique ou un appel au réseau d'autorisation.

Existe-t-il une limite de longueur ? Aucune limite n'est imposée. La table s'étend pour toute longueur saisie. Cela peut servir à vérifier des identifiants internes personnalisés (codes d'entrepôt, numéros de dossier) sur lesquels une équipe métier aurait ajouté un chiffre Luhn sur une longueur non standard.

Le chiffre de contrôle français RIB suit-il le même principe ? Non. La clé RIB utilise un calcul fondé sur le modulo 97 appliqué au triplet code banque + code guichet + numéro de compte, ce qui est mathématiquement plus robuste que Luhn mais aussi spécifique aux établissements bancaires. Cet outil ne traite que Luhn Mod 10.

📚 Le saviez-vous

Hans Peter Luhn était chercheur chez IBM lorsqu'il déposa en 1954 le brevet US 2950048, accordé en 1960. Sa contribution la plus retentissante dans l'histoire de l'informatique reste pourtant ailleurs : il est l'inventeur de l'index KWIC (Key Word in Context), précurseur des techniques modernes de recherche plein texte. Le chiffre de contrôle Mod 10 n'occupe qu'une ligne dans sa bibliographie scientifique, à côté de travaux fondateurs en indexation automatique et en résumé documentaire.

L'expiration du brevet en 1977 coïncida avec la finalisation par Visa et MasterCard de la norme internationale ISO/IEC 7812 sur la structure des numéros de carte. Cette concordance temporelle explique pourquoi Luhn est devenu l'algorithme universel des cartes bancaires : disponible sans redevance, vérifiable mentalement avec un papier et un crayon, et juste assez robuste pour rejeter les fautes de frappe les plus courantes sans alourdir les guichets de l'époque.

Un détail souvent oublié : Luhn échoue à détecter la transposition adjacente 0990. C'est le seul cas où le contrôle dit « valide » à tort. En pratique, les processeurs de paiement ajoutent en amont une vérification du BIN (les six premiers chiffres identifient l'émetteur) et une vérification de longueur, ce qui élimine la quasi-totalité des numéros aberrants avant même que Luhn n'entre en jeu.