Suma kontrolna dla karty kredytowej.
Przedstawiony tutaj sposób nie różni się niczym od sposobów opisywanych przez Twardego wystarczy zmienić tylko wagi.
WAGI : 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1
Powinno być 16 tych cyferek, ponieważ tyle ma numer karty, jeżeli posiadany przez Ciebie numer jest krótszy musisz dodać na jego początku zera tak, aby jego długość była równa 16.
Zastosowanie
1. Mnożymy kolejne cyfry numeru karty przez wagi np.
5694513500001252 -- numer karty
- 2121212121212121 -- wagi
--------------------------
10|6|18|4|10|1|6|5|0|0|0|0|2|2|10|2
2. Sumujemy wyniki otrzymany w podpunkcie 1. Jeżeli iloczyn był większy od 9 to rozbijamy go na 2 liczby}.
1+0+6+1+8+4+1+0+1+6+5+0+0+0+0+2+2+1+0+2 = 40
3. Wynik otrzymany w podpunkcie 2. dzielimy modulo 10
40 mod 10 = 0
Jeżeli otrzymaną liczbą jest 0 to znaczy, że numer jest poprawny
Suma kontrolna dla numeru banku
Zasada obliczani sumy kontrolnej jest prawie identyczne jak w przypadku numeru karty.
WAGI: 7,1,3,9,7,11,3
Zastosowanie
1. 1. Mnożymy kolejne cyfry numeru karty przez wagi np.
33142 0 1 (0) -- numer banku
- 71397113 -- wagi
--------------
21|3|3|36|14|0|3
2. Sumujemy wyniki otrzymany w podpunkcie 1.
21+3+3+36+14+0+3 = 80
3. Wynik otrzymany w podpunkcie 2. dzielimy modulo 10
80 mod 10 = 0
Jeżeli wynik równy jest liczbie kontrolnej to numer banku jest poprawny.
Suma kontrolna dla numeru bankowego IBAN
IBAN (International Bank Account Number) ? norma ISO-13616 wprowadzona w celu weryfikacji numerów kont bankowych.
Na numer IBAN składa się z dwuliterowego kudu państwa, dwucyfrowej sumy kontrolnej oraz numeru konta.
Weryfikacja numeru
Numer wyjściowy ? BE62 5100 0754 7061
1. Usunięcie znaków specjalnych z numery (spacje, myślniki) | BE6251000754 7061|
2. Przesunięcie kodu państwa oraz sumy kontrolnej na koniec (pierwsze 4 znaki)
|51000754 7061BE62|
3. Zamiana liter na cyfry. A=10 B=11 C=12 ? Z=35 |51000754 7061111462|
3. Dzielimy modulo 97
51000754 7061111462 mod 97 = 1
Wyliczanie sum kontrolnych
1. Sumę kontrolną (3 i 4 znak) zastąp dwoma zerami ) | BE0051000754 7061|
2. Zamiana liter na cyfry. A=10 B=11 C=12 ? Z=35 |510007547061111400|
3. Dzielimy modulo 97
510007547061111400 mod 97 = 36
4. Odejmij wynik z punktu 3. od 98
98 ? 36 = 62 -- suma kontrolna
Jeśli wynik jest jednocyfrowy trzeba dodać przed nim 0
Bonus ;)
Aby uniknąć dzielenia takich dużych liczb możemy rozbić je nam mniejsze. np.
510007547061111400 rozbijamy na 510007547 i 061111400
510007547 mod 97 = 74
Otrzymaną liczbę dopisujemy na początku drugiej liczby i wykonujemy ponownie dzielenie
74061111400 mod 97 = 36
Jako wynik otrzymaliśmy to samo, co w wyniku dzielenia
510007547061111400 mod 97 = 36
Autor: Bełdzio