JustPaste.it

Obliczanie sumy kontrolnej numeru karty kredytowej oraz numeru banku

W tym artykule postaram się przedstawić Wam sposób na obliczanie sum kontrolnych dla numeru karty kredytowej oraz numeru banku.

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

 

Źródło: 4programmers.net. Treść udostępniona na zasadach licencji Creative Commons Attribution

 

Autor: Bełdzio