User Tools

Site Tools


tanszek:oktatas:infrendalapjai_architekturak:informacio_ellenorzes:bankkartya_szamok_ellenorzese

Bankkártya számok ellenőrzése

A Luhn-algoritmus (vagy “modulus 10” algoritmus) egy egyszerű ellenőrző algoritmus, amelyet a hitelkártyaszámok (például Visa, MasterCard) érvényességének ellenőrzésére használnak. Ez az algoritmus képes kiszűrni a véletlen adatbeviteli hibákat, például amikor egy számjegy elgépelődik. Az algoritmus a következő lépéseken alapszik:

1. A számjegyek megfordítása: A kártyaszámot jobbról balra kell olvasni.

2. Minden második számjegy duplázása: A jobb széltől indulva minden második számjegyet meg kell duplázni. Ha a megduplázott számjegy 10-nél nagyobb (például 12), akkor a két számjegyet össze kell adni (például 1 + 2 = 3), hogy egyjegyű eredményt kapjunk. (ez programozáskor ugyanaz mintha a 10-nél nagyobb számokból 9-et kivonnánk)

3. A számjegyek összege: Az így módosított számjegyeket össze kell adni az eredeti számjegyekkel együtt, amelyek nem lettek megduplázva.

4. Ellenőrzés: Ha az összeg osztható 10-zel (a végösszeg mod 10 = 0), akkor a szám érvényes a Luhn-algoritmus szerint, és így nagy valószínűséggel helyes a kártyaszám.

Példa egy Visa kártyaszám ellenőrzésére a Luhn-algoritmussal

Tegyük fel, hogy a kártyaszám: 4532 8827 1225 4561

1. Megfordítva: 1, 6, 5, 4, 2, 2, 1, 7, 8, 2, 8, 3, 5, 4.

2. Minden második számjegyet megduplázunk:

  • 1 (változatlan), 6×2 = 12 (1+2=3), 5 (változatlan), 4×2 = 8, 2 (változatlan), 2×2 = 4, 1 (változatlan), 7×2 = 14 (1+4=5), 8 (változatlan), 2×2 = 4, 8 (változatlan), 3×2 = 6, 5 (változatlan), 4×2 = 8.

3. Az összeg kiszámítása:

\[ 1 + 3 + 5 + 8 + 2 + 4 + 1 + 5 + 8 + 4 + 8 + 6 + 5 + 8 = 68 \]

4. Mivel \( 68 \mod 10 = 8 \), ez a kártyaszám érvénytelen lenne a Luhn-algoritmus szerint. Ha az eredmény osztható lenne 10-zel, akkor a szám érvényes lenne.

A Luhn-algoritmus tehát egyszerű módon segít az érvénytelen kártyaszámok kiszűrésében.

tanszek/oktatas/infrendalapjai_architekturak/informacio_ellenorzes/bankkartya_szamok_ellenorzese.txt · Last modified: 2024/11/13 17:06 by knehez