- Luhni algoritm kinnitab numbreid, nagu krediitkaardid ja IMEI.
- Selle valem tuvastab vead lihtsates numbrilistes transkriptsioonides.
- Seda kasutatakse laialdaselt pangandus- ja telekommunikatsioonisüsteemides.
Luhni algoritm , tuntud ka kui "moodul 10-st", on lihtne, kuid uskumatult kasulik matemaatiline tööriist. Seda kasutatakse sageli identifitseerimisnumbrite , näiteks krediitkaartide numbrite ja mobiiltelefonide IMEI-identifikaatorite valideerimiseks. Teadlase Hans Peter Luhni poolt 1954. aastal välja töötatud algoritm on endiselt asjakohane ja kasutusel paljudes tööstusharudes.
See algoritm pole mitte ainult äärmiselt efektiivne numbriliste transkriptsioonide tavaliste vigade tuvastamisel , vaid vastab ka standardile ISO/IEC 7812-1. Kuigi see ei ole loodud krüptograafilistel eesmärkidel, muudab selle võime juhuslikke vigu ära hoida oluliseks tööriistaks.
Mis täpselt on Luhni algoritm?
Luhni algoritm on lihtsatel matemaatilistel arvutustel põhinev meetod numbri kehtivuse kontrollimiseks . Kuigi paljud inimesed seostavad seda krediitkaartidega, kasutatakse seda ka teistes süsteemides, mis nõuavad numbrilist valideerimist, näiteks mobiiltelefoni IMEI-numbrite, pangakontonumbrite ja isegi vöötkoodide puhul.
Algselt seadmete mehaanilise valemina välja töötatud süsteem on nüüd digitaalne. Protsess hõlmab liitmist, korrutamist ja mooduli 10 tehteid , mis teeb selle rakendamise erinevates programmeerimiskeeltes lihtsaks.
Kuidas Luhni algoritm töötab?
Luhni algoritmi toimimist saab selgitada mõne sammuga, mis, kuigi lihtsad, on vigade tuvastamisel tõhusad. Oletame, et tahame arvu kinnitada:
- Alustame numbri viimasest numbrist ja liigume vasakule.
- Kahekordistame iga teise numbri (lugedes paremalt).
- Kui korrutamise tulemuseks on arv, mis on suurem kui 9, liidame selle üksikud numbrid (näiteks 14 saab 1+4=5).
- Lisame kõik saadud numbrid, nii need, mis dubleeriti, kui ka need, mis jäid samaks.
- Number kehtib, kui mooduli 10 kogusumma on 0. Muidu ei ole.
Näiteks number 79927398713 on ülaltoodud samme kasutades edukalt kinnitatud. Valem võimaldab teil arvutada ka kehtiva isikukoodi täiendamiseks vajaliku "kontrollnumbri".
Luhni algoritmi tegelikud rakendused
Luhni algoritmi kõige tähelepanuväärsemate rakenduste hulgas leiame:
- Krediitkaardi kinnitamine: Seda kasutavad kaardinumbrite kontrollimiseks väljaandjad, nagu Visa, Mastercard ja American Express.
- IMEI koodid: Mobiilseadme kordumatud identifikaatorid sisaldavad Luhni abil arvutatud valideerimisnumbrit.
- Pangasüsteemid: Kontode ja kliendinumbrite kontrollimine.
- Veebitööriistad: Kalkulaatorid ja skriptid, mis kinnitavad selle valemi abil kiiresti numbreid.
See mitmekülgsus muudab Luhni algoritmi standardiks süsteemides, mis nõuavad usaldusväärset numbrilist valideerimist.
Algoritmi piirangud
Vaatamata kasulikkusele pole Luhni algoritm eksimatu. Näiteks:
- See ei tuvasta keerulisi transpositsioone, näiteks 09 vahetamist 90 vastu.
- See ei ole mõeldud kaitsma tahtliku võltsimise või pettuse eest.
- See on piiratud numbriliste stringidega, kuigi on olemas laiendused, mis sisaldavad tähtnumbrilisi märke.
Need piirangud muudavad selle sobivamaks juhuslike vigade tuvastamiseks , täiendades teisi turvamehhanisme tundlike andmete kaitsmiseks.
Rakendamine programmeerimises
Algoritmi saab hõlpsasti rakendada peaaegu igas programmeerimiskeeles. Allpool on näide Pythoni fragmendist:
def validate_luhn(number): summa = 0 toggle = Väär ümberpööratud(numbri) numbri jaoks: d = int(number), kui lüliti: d *= 2, kui d > 9: d -= 9 summa += d toggle = ei lülita välja tagastamise summat % 10 == 0
See põhikood võtab sisendiks stringi ja tagastab tõeväärtuse, mis näitab, kas number Luhni järgi kehtib.
Luhni algoritm on tänapäeva maailmas endiselt oluline tööriist, eriti tööstusharudes, kus on vaja identifitseerimisnumbreid kiiresti ja tõhusalt kinnitada. Selle **lihtsus** ja **praktiline kasulikkus** on kindlustanud oma koha rahvusvahelise standardina. Selle toimimise ja kasutamise mõistmine võimaldab meil hinnata selle mõju meie igapäevaelule.