Zadeva je bila razvita že v šestdesetih letih prejšnjega stoletja, imenuje pa se Luhnov algoritem, algoritem modul 10 ali algoritem mod 10. Algoritem je bil razvit za preprečevanje možnosti zatipkanja ob vnosu številk in ne za ugotavljanje ali za neko številko kartice dejansko »stoji« prava, uporabna kartica. In kako deluje tak algoritem?
Vzemimo, da je številka kartice takšna:
1234 5678 9098 7658
Kot smo zapisali, je kontrolna številka zadnja, torej v našem primeru 8. In zdaj nastopi Luhnov algoritem. Začnemo od desne proti levi (izpustimo kontrolno številko) in označimo vsako drugo števko:
1234 5678 9098 765
Zdaj neoznačene števke prepišemo, označene pa podvojimo:
226410614818018814610
Dobili smo novo, daljšo številko, v kateri seštejemo vse števke, pri čemer prej podvojene obravnavamo kot ločene številke. Ko smo podvojili številko 9 smo dobili 18, kar obravnavamo kot 1+8:
2+2+6+4+1+0+6+1+4+8+1+8+0+1+8+8+1+4+6+1+0=72
Zdaj dobljeno število delimo z deset:
72 : 10 = 7, ostanek 2
Nato ostanek pri deljenju odštejemo od 10 in dobimo kontrolno število:
10 – 2 = 8
V našem primeru gre torej za veljavno številko kreditne kartice.
Še enkrat – pri tovrstnem ugotavljanju ne gre za iskanje številke, iz katere bi lahko kaj ukradli pač pa le za hitro preverjanje morebitnih napak pri vnosu. Pri tako dolgih številkah se mimogrede zgodi, da katero številko narobe vpišemo ali jih zamenjamo. In Luhnov algoritem to preprečuje… Veljavnost kartice in postopki plačila se izvajajo v naslednjih fazah, ki imajo svoje varnostne mehanizme...▪