Vous pouvez télécharger le fichier algo_luhn.zip qui contient la version Javascript de l'algorithme et une version asp (test 6 types de cartes différents) réalisée par 2Si-Systemes.
Détail de l'algorithme
1) test du préfixe de numéro la carte bancaire:
Les préfixes, c'est à dire les premiers chiffres d'une carte bancaire sont fixés et dépendent du type de carte dont l'utilisateur dispose.
2) test sur la longueur du numéro de carte
La longueur est également fixe, et dépend de la même manière du type de carte bancaire.
Voici un petit tableau récapitulatif des deux types de cartes que l'on trouve en France :
| TYPE DE CARTE |
PRÉFIXE |
LONGUEUR |
| Visa |
4 |
varie de 13 à 16 |
| Master Card |
varie de 51 à 55 |
16 |
3) l'algorithme de LUHN
Une fois les deux tests précédents effectués,
nous allons opérer sur le numéro de carte un algorithme (algorithme de Luhn), qui va permettre de vérifier la cohérence du numéro entré.
Comment Ca marche
Le principe repose sur une somme qui doit être divisible par 10 (mod 10).
On numérote chaque chiffre de 1 à n en commençant par le dernier (numéro d'ordre).
Dans cette somme tous les chiffres correspondant à un numéro d'ordre paire sont multipliés par deux. Si la multiplication engendre un nombre supérieur à 10 alors on ajoute les deux chiffres (12= 1+2), et on en retient la somme obtenue, dans le cas contraire on retient uniquement le chiffre obtenu. Chacun de ses numéros est ensuite additionné à tous ceux dont le numéro d'ordre est impaire, la somme finale doit être divisible par 10.
Exemple :
Soit le numéro de carte suivant : 4895 1313 (le numéro choisi est fictif)
On obtient le schéma suivant :
| 8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
| 4 |
8 |
9 |
5 |
1 |
3 |
1 |
3 |
| x2 |
|
x2 |
|
x2 |
|
x2 |
|
| 8 |
+ 8 |
1 + 8 |
+ 5 |
+ 2 |
+ 3 |
+ 2 |
+ 3 |
|
Total Obtenu : 40 Le numéro de carte est correct
|
Téléchargement
algo_luhn.zip