L'algorithme de Luhn consiste à dérouler les phases suivantes :
- Phase 1 : doubler la valeur d'un chiffre sur deux en commençant par le premier chiffre de droite.
- Phase 2 : additionner chacun des chiffres composant les produits obtenus en phase 1 et les chiffres inchangés du numéro original.
- Phase 3 : soustraire le total obtenu en phase 2 du nombre supérieur le plus voisin se terminant par zéro (ce qui revient à calculer le complément à 10 du chiffre de rang le plus faible - chiffre des unités - du total. Si le total obtenu en 2 se termine par 0 (30, 40 etc.) le chiffre de contrôle est égal à zéro.
Exemple : numéro de carte sans clé : 497010000030052
- Phase 1 :
4 9 7 0 1 0 0 0 0 0 3 0 0 5 2
x2 x2 x2 x2 x2 x2 x2 x2
________________________________
8 9 14 0 2 0 0 0 0 0 6 0 0 5 4
- Phase 2 :
8 + 9 + 1 + 4 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 6 + 0 + 0 + 5 + 4 = 39
- Phase 3 :
40 - 39 = 1
Numéro de carte avec clé : 4970100000300521