Ez egy rövid, de hasznos bejegyzés lesz, amit indulatból írtam, mert alaposan felhúztam magam.
Kell készítenem egy beadandó házi feladatot, aminek a része az, hogy bankszámlaszámot kell a rendszernek fogadnia, amit ellenőrizni kell, hogy formailag helyes-e.
Az ember ilyenkor rákeres a google-ban az algoritmusra.
1. tapasztalat: Hivatalos helyről semmilyen információ nincs, hogy hogyan kell ezt csinálni.
2. tapasztalat: Félhivatalos helyeken - a témával foglalkozó magánszemélyek oldalain - van algoritmus, de hibás.
Nézzük mit írnak ez utóbbiak. Szerintük a következő az eljárás:
A Giro bankszámlaszám 24 karakteres, csak számokból áll. Ezt 3 db 8 karakteres részre kell szétdarabolni, és mindegyikre le kell futtatni a következő algoritmust.
A nyolcas karaktersor első karakterhelyén álló számot 9-cel,
a második karakterhelyén álló számot 7-tel,
a harmadik karakterhelyen álló számot 3-mal,
a negyedik karatkerhelyen álló számot 1-gyel,
az ötödik karakterhelyen álló számot 9-cel,
a hatodik karakterhelyen álló számot 7-tel,
a hetedik karakterhelyen álló számot 3-mal,
a nyolcadik karakterhelyen álló számot 1-gyel szorozzuk be,
majd a szorzatokat összeadjuk. Az összegnek tíz egész számú többszörösének kell lenni, akkor érvényes a számlaszám.
Az algoritmus HIBÁS!!!
Csak az első nyolc karakterre működik! Illetve OTP esetén a második nyolcra is, de ennek csak az az oka, hogy az OTP esetében a harmadik 8 karakter csupa nulla.
Ezzel szemben a valódi algoritmus az, hogy a fenti metódussal leellenőrizzük az első nyolc számjegyet, és ha az rendben van, akkor a második és harmadik nyolc számjegyre is kiszámoljuk a fenti összeget, de ennek nem külön kell nullának lennie a második 8 számjegyre, és a harmadik nyolc számjegyre, hanem a második és harmadik nyolcas vizsgálata során kapott összegeket össze kell adni, és annak kell 10-el oszthatónak lennie. Magyarán az algoritmust az első nyolc, majd az utána következő 16 számjegyre kell futtatni. Ezek alapján könnyű belátni, hogy az OTP-nél miért működik a második 8 számjegyre is önmagában.
Remélem sok ember hasznosnak találja ezt a bejegyzést, és nem fog órákat eltölteni azzal, hogy ott keresi a hibát, ahol nincs, csak mert bedőlt a neten talált félinformációknak.
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Online Távmunkás · http://onlinetavmunka.blog.hu 2022.05.07. 11:43:39
net.jogtar.hu/jogszabaly?docid=a1700035.mnb
Gazz 2022.05.07. 13:31:31