Digitális és informatikai

Luhn-ellenőrzés: egy ellenőrző számjegy mire elég?

A Luhn-algoritmus lépései, ellenőrző számjegy és paritás. Rövid ellenpélda két eltérő, mégis egyaránt megfelelő számra: 1099 és 1909.

Dajka Gábor4 perc olvasás

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.

További cikkek

Kapcsolódó olvasnivalók

Gyorskereső

Kalkulátorok és útmutatók keresése

↑↓ választásEnter megnyitásEsc bezárás