Kredi Kartı Numarası Doğrulama – Lhun Algoritması

Hazırladığımız sistemde/sitede kredi kartı işlemleri olabilir. Normal şartlar altında alışveriş siteleri bankalarla anlaşmalar yaparak sanal pos alıyorlar. Bu sanal pos kodları zaten bu kontrolu bankaların sistemleri yardımıyla yapıyor. Hem bu kontrolün nasıl yapıldığını öğrenmek hem de siz numarayı göndermeden önce kendi sisteminizde de kontrol etmek isteyebilirsiniz. Bunun için genel kredi kartı numarası algoritması olan Lhun Algoritması kullanılmaktadır. Bu konu daha detaylandırılabilir. Visa mı? MasterCard mı? diye sorgulamak isteyebilirsiniz. Her kart türününün kendi içinde bir mantığı vardır. Örneğin, mastercard türündeki kredi kartının ilk iki hanesi 50 ya da 55 olmak zorundadır. Bunun gibi çeşitlerin mantığı artırılabilir fakat ben genel algoritmayı anlatacağım.

Lhun algoritması şu şekilde çalışmaktadır:

  1. Kredi kartı numarasının en sağdan ikinci karakterinden başlanarak ikişer sıra ara ile her rakamın iki katı alınır.
  2. İkişer katı alınan sayılar birbirleri ile toplanır.
    •  Ufak bir ayrıntı var: iki katı alınan sayıların arasında 10 ve 10’dan büyük olan var ise bunların basamakları toplanır.
    • Örneğin; rakamımız 8. iki katını aldık:16. Bu sayı (1+6) şeklinde işleme alınır ve o haliyle genel toplama eklenir.

     

  3. Kalan rakamlar ise kendi aralında toplanır ve ikinci bir toplam değeri elde edilir.
  4. Son olarak bu iki toplam değeri toplanır ve 10 ile bölümünden kalan olup olmadığına bakılır. Başka bir deyimle 10’a göre modüleri alınır.
  5. Eğer toplam değerin 10 ile bölümünden kalan 0 ise sayı dizisi geçerli bir kredi kartı numarasıdır. 0 değil ise geçerli bir kredi kartı değildir.

Resim ile daha açıklayıcı olacaktır. İnceleyelim:

mk144_1

Elinizdeki kredi kartları ile de deneyip sonucu değerlendirebilirsiniz.

Bu yazı Algoritma, Programlama kategorisine gönderilmiş ve , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Kredi Kartı Numarası Doğrulama – Lhun Algoritması için 1 cevap

  1. fulya der ki:

    yaptığınız şey gerçekten harika bir şey.çok teşekkür ederim işime yaradı. yalnız C# ile bunun kodlarını yazmam gerekiyor yardımcı olur musunuz ?

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir