Luhn-ellenőrzésnél a teljes számjegysorhoz egy matematikai feltételt vizsgálsz. A helyes ellenőrzőösszeg hasznos elírásjelzés, de az eredményhez pontosan oda kell írni, mit ellenőriztél. A nyilvántartásbeli létezés vagy az azonosító használhatósága további kérdés.
A számítás menete
A teljes, ellenőrző számjegyet is tartalmazó sor jobb szélétől indulunk. Az utolsó számjegyet változatlanul hagyjuk, a tőle balra állót megkétszerezzük, majd váltakozva folytatjuk. A kilencnél nagyobb kétszerezett értékből kilencet vonunk ki. A kapott számokat összeadjuk; érvényes ellenőrzőösszegnél az összeg tízzel osztható.
Rövid, kizárólag oktatási célú példánk a 1230. Jobbról a 0 marad, a 3 kétszerezve 6, a 2 marad, az 1 kétszerezve 2. Az összeg 0 + 6 + 2 + 2 = 10. A példaszám tehát megfelel ennek a matematikai szabálynak.
Ellenőrző számjegy keresése
A 123 kezdethez úgy keresünk utolsó számjegyet, hogy a kész négyjegyű sor összege tízzel osztható legyen. Az előző példa alapján ez 0. Ha 1231-et írnánk, az összeg 11 lenne, így az ellenőrzés hibát jelezne.
A kiindulási oldal és a kétszerezés paritása lényeges. Ellenőrző számjegy előállításánál és teljes szám ellenőrzésénél ugyanannak a kész számsornak a pozícióiból kell kiindulni. A vezető nullákat szövegként őrizd meg, ha az azonosító formátuma megköveteli.
Mire használd az eredményt?
Az algoritmus sok egyszerű elírást felismer, de nem minden lehetséges változtatást. A Luhn-számítás az ellenőrzőösszeget vizsgálja. A hitelesítést, a titkosítást és a nyilvántartási ellenőrzést más eljárások végzik. A kalkulátort saját tesztadatok formai vizsgálatához használhatod. Érzékeny azonosító helyett a módszer megértéséhez elegendő egy ilyen mesterséges rövid példa is.
Két eltérő szám is átmehet az ellenőrzésen
Vegyük a mesterséges 1099 számsort. Balról felírva a váltakozó átalakítás eredménye 2, 0, 9, 9, összegük 20. A középső 09 számjegypárt megfordítva 1909-et kapunk. Ennek átalakított értékei 2, 9, 0, 9, amelyek összege ugyancsak 20. Mindkét sor megfelel a Luhn-szabálynak, miközben a számjegyeik sorrendje eltér.
Ez közvetlen ellenpélda arra, hogy a sikeres ellenőrzőösszeg minden elírást kizárna. Külön ellenőrizd a formátum által előírt hosszt, a kizárólagos számjegybemenetet és az azonosító nyilvántartásbeli állapotát. A 1230 elé tett vezető nulla a jobbról számolt Luhn-összeget nem változtatja meg, de az előírt hosszt módosítja. Az üres bemenetet pedig már a formai ellenőrzésnél utasítsd el; a nulla összeg önmagában nem teszi értelmes azonosítóvá.
Kapcsolódó DG Kalkulátor megnyitása
Forrás és módszertani háttér
A számpéldák saját szemléltető számítások.
Háromkérdéses tudáspróba
Válassz kérdésenként egy választ, és jegyezd fel az A, B vagy C betűt. Előbb oldd meg mindhárom feladatot, utána nézd meg a megoldásokat.
1. A 1230 példában mennyi az átalakított összeg?
- A) 12
- B) 6
- C) 10
2. Mi történik a kétszerezésből kapott 14-gyel?
- A) 9-et levonunk, így 5 lesz
- B) Változatlanul hagyjuk
- C) 14-et levonunk
3. Az 1099 és 1909 átalakított Luhn-összege egyaránt 20. Mit mutat ez a konkrét ellenpélda?
- A) Két eltérő számjegysor is megfelelhet ugyanannak az ellenőrzőösszeg-szabálynak
- B) A Luhn-számítás minden számot elfogad
- C) A két szám ugyanazt a valós azonosítót jelenti
Megoldások és önálló pontozás
Minden helyes válasz 1 pont; a hibás vagy kihagyott válasz 0 pont. Legfeljebb 3 pont szerezhető. 3 pont: Végigkövetted a számjegyátalakítást, és a sikeres ellenőrzőösszegből csak a ténylegesen igazolt feltételt állapítottad meg. 2 pont: nézd át az eltévesztett kérdésnél megnevezett részt, és számold újra annak példáját. 0–1 pont: haladj végig a három megoldáson, majd oldd meg újra a kérdéseket. Ez a rövid próba a cikk összefüggéseinek megértését ellenőrzi.
1. megoldás
C) 10 – 2 + 2 + 6 + 0 = 10. Ha más választ adtál vagy kihagytad, ezt a részt ismételd át: A számítás menete.
2. megoldás
A) 9-et levonunk, így 5 lesz – Ez az algoritmus számjegyösszegzéssel egyenértékű lépése. Ha más választ adtál vagy kihagytad, ezt a részt ismételd át: A számítás menete.
3. megoldás
A) Két eltérő számjegysor is megfelelhet ugyanannak az ellenőrzőösszeg-szabálynak – A középső 09 és 90 felcserélése ebben a példában azonos összeget ad. Ebből a módszer egyik hibafelismerési korlátja következik; a két számsor valódiságáról vagy azonosságáról nincs adat. Ha más választ adtál vagy kihagytad, ezt a részt ismételd át: Két eltérő szám is átmehet az ellenőrzésen.