Tartalomjegyzék:
Meghatározás - Mit jelent a Luhn-formula?
A Luhn-képlet egy egyszerű ellenőrzőösszeg-formula, amelyet különféle azonosító számok, például hitelkártya-számok, társadalombiztosítási számok, IMEI-számok és még sok más érvényesítésére használnak. Az algoritmus validálja a számot egy magában a számban szereplő ellenőrző számmal, általában az utolsó számjegyével. A Luhn-formula ma már nyilvánosan hozzáférhető, széles körben használják különféle iparágakban, és az ISO / IEC 7812-1 szabvány meghatározza.
A Luhn-képlet Luhn algoritmus, 10 modulus algoritmus vagy mod 10 algoritmus néven is ismert.
A Techopedia magyarázza a Luhn Formula-t
A Luhni képletet Hans Peter Luhn, az IBM tudósa dolgozta ki, aki 1954-ben szabadalmat nyújtott be a képlethez, amelyet 1960-ban kapták meg. A formulát nem úgy fejlesztették ki, hogy kriptográfiailag biztonságos hash-funkcióvá váljon, hanem inkább egyszerű módszerként szolgál a védje az egyedi azonosító számok létrehozása során bekövetkező véletlen hibák ellen. Számos kormányzati ügynökség és magánintézmény használta a képletet az érvényes számok megkülönböztetésére a hibás, helytelen vagy egyszerűen hamis számoktól.
A képlet a számsorok ellenőrzésére szolgál annak ellenőrzésével, hogy a mellékelt ellenőrző szám helyes-e. Ezt az ellenőrző számjegyet általában a részszámhoz csatolják annak kitöltése érdekében.
A következő folyamat generálja az ellenőrző számjegyet:
- A jobb oldali számjegyből kiindulva, minden második számjegy kétszeresét növelje.
- Ha az első lépés eredményeként kapott termék értéke meghaladja a 9-et, akkor adja hozzá a két számjegyet (pl. 5 × 3 = 15, 1 + 5 = 6). Ha az eredmény 9 vagy annál kevesebb, tartsa meg a számot.
- Vegyük az összes számjegy összegét.
- Szorozzuk meg az összeget 9-gyel és vegyük az összeg "modulo 10" értékét; az eredmény az ellenőrző számjegy.
Példa: 927638965 számú sorozat
9 |
2 |
7 |
6 |
3 |
8 |
9 |
6 |
5 az ellenőrző számjegy |
9 |
4 |
7 |
12 |
3 |
16 |
9 |
12 |
|
9 |
4 |
7 |
3 |
3 |
7 |
9 |
3 |
összeg = 45; 45 × 9 = 405 (mod 10) = 5 |
A szám érvényességének ellenőrzéséhez egyszerűen kövesse az ellenőrző számot kizáró algoritmust, és ha ugyanazt az eredményt kapja, mint az ellenőrző szám, akkor a szám a Luhn képlet szerint érvényes. Ez az algoritmus azonban nem túl megbízható, és csak az egy számjegyű hibákat és a szomszédos számok átültetését képes detektálni, kivéve a kétjegyű 09–90. Sorozat átültetését. Bonyolultabb algoritmusok, mint például a Verhoeff algoritmus és a Damm algoritmus, képesek további átírási hibák észlelése.
