Valeur | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
Lettre | A | B | C | D | E | F | G | H | I |
Lettre | J | K | L | M | N | O | P | Q | R |
Lettre | S | T | U | V | W | X | Y | Z |
Si vous disposez d'un microprocesseur 64 bits avec l'environnement qui va bien, pas de soucis, vous pourrez calculer N (sur 23 chiffres) mod 97. Pour les autres cas, majoritaires, vous trouverez principalement deux méthodes de calcul sur le Net :
N = 10^18 x A + 10^13 x B + 10^2 x C + D
On peut alors distribuer le modulo : par exemple 10^13 = n x 97 + 15 donc 10^13 x B mod 97 = (15 x B) mod 97.
La première méthode fait calculer, pour C, un modulo sur un nombre à 39 bits (valeur maximale = 10^12 - 1) : si le calcul est réalisé en 32 bits, le résultat sera faux pour des numéros de comptes grands... et en 64 bits, on peut calculer directement le modulo ! Quant à la seconde, elle est sérieuse.
Une autre méthode est facile à implémenter. On choisit d'abord avec combien de chiffres on travaille puis on découpe le nombre en paquets de cette taille. A chaque étape, on calcule le modulo 97 du résultat précédent concaténé au paquet courant. Voici un exemple avec le RIB
20041 01005 0500013M026 06
Le nombre correspondant est 20041010050500013402606, voici le déroulement de l'algorithme :
Pour tester un RIB, saisissez dans le formulaire suivant ses 23 caractères :
2004 mod 97 = 64 641010 mod 97 = 34 340505 mod 97 = 35 350001 mod 97 = 25 253402 mod 97 = 38 38606 mod 97 = 0
IBAN signifie International Bank Account Number : il est aujourd'hui reconnu sur toute la planète. Il est composé de 2 caractères identifiant le pays, puis 3 à 32 caractères identifiant le compte dans le pays. La longueur est fixée pour chaque pays : 27 caractères pour la France, 20 pour le Luxembourg, 22 pour l'Allemagne, ... En général, l'IBAN est formé de l'indicatif du pays, d'un code pour satisfaire les contrôles décrits plus bas, et du RIB national. En France, les IBAN sont donc de la forme FR76 + RIB complet avec sa clé. L'ECBS recommande de les écrire par paquets de 4 caractères séparés pas des espaces.
Pour contrôler la validité d'un IBAN, on va :