Online alışveriş günlük hayatımızın vazgeçilmez bir parçası haline geldi. Öyle ki, alışveriş yaparken kullandığımız kredi ve banka kartlarımıza ait bilgileri ezbere söyleyebilecek kadar sık kullanıyoruz. Peki, alışverişlerimizde sıkça kullandığımız banka ve kredi kartları numaraları nasıl oluşturuluyor? Bu yazımızda, Luhn Algoritması nedir ve ne işe yarar? sorularına cevap vereceğiz. 

dört adet kredi kartı ve bir kilit sisteminin bulunduğu fotoğraf

Luhn Algoritmasının Bulunuşu

Luhn algoritması ya da diğer adıyla mod 10 olarak a bilinen algoritma; 1954’te IBM’de çalışan bir bilim insanı olan Hans Peter Luhn tarafından henüz banka kartlarının hayatımızda olmadığı bir dönemde bulunmuştur.

Luhn Algoritması, kart bilgisini kötü niyetli kişilerden korumak için değil kullanıcı tarafından yapılan hatalara karşı korumak için tasarlanmıştır. Luhn algoritması sayesinde, örneğin kart numaranızı 9792060000000007 yerine 9792060000000009 girdiğinizde sistem muhtelemen size geçersiz kart hatası verecektir.

Birçok kredi kartı ve banka kartı 16 hanelidir ve kartın ön yüzünde bulunur. Karta ait kuruluşların ayrımında kullanılan ilk rakam Visa kartlarında 4, MasterCard’da 5, American Express’te 3 ve Troy kartlarında 9‘dur. Tüm bu kartlarda kart üzerindeki sayı dizisinin son rakamı kontrol numarasıdır. Check digit olarak isimlendirilen bu rakam, kredi kartı numarasının geçerli olup olmadığını kontrol etmektedir. Bu rakam ise Luhn Algoritması ile üretilmektedir.

Luhn Algoritması ile Kart Doğrulaması Nasıl Yapılır?

Örnek olarak 4847 3529 8926 3094 kredi kartı numarasının Luhn algoritması ile geçerli  bir kart olduğunu doğrulayalım:

  1. Öncelikle kredi kartı numarasının 0–15 aralığında karşılık değerlerini eşleştirelim.
  1. En sağdan başlayarak 0–15 aralığında tek numaraya karşılık gelen değerleri alıp toplayalım. (Örnek 15’e karşılık rakam 4 gibi)

4 + 0 + 6 + 9 + 9 + 5 +7 + 8 = 48

  1. En sağdan başlayarak 0–15 aralığında çift numaraya karşılık gelen değerleri sıralayalım, sonrasında bu değerlerin her birini 2 ile çarpalım., Eğer çarpım sonucunda 2 haneli sayı elde edersek bu sayıları kendi aralarında toplayalım. (Örnek 14’e karşılık rakamı 9 gibi)

9 3 2 8 2 3 4 4 -> Sağdan başlayarak çift haneli değerleri yazdık.

18 6 4 16 4 6 8 8 -> Her bir sayıyı 2 ile çarptık.

1+8 = 9, 1+6 = 7 -> Çift haneli sayıları kendi arasında topladık.

Şimdi ise bu sayıları toplayalım:

9 + 6 + 4 + 7 + 4 + 6 + 8 + 8 = 52

Son adımda tek numaraya karşılık gelen değerler ile çift numaraya karşılık gelen değerleri topluyoruz ve ardından 10′ a tam bölünüyorsa bu kart geçerli (valid) bir karttır diyebiliriz.

48 + 52 = 100 sayısı 10’a tam bölündüğü için bu kart numarası geçerlidir.

birinde kredi kartı bulunan iki insan eli ile bir laptop bulunan görsel

Daha detaylı bilgi ve Github kod örneği için buradaki  bağlantıyı ziyaret edebilirsiniz.

Ödeme alanında deneyimli ekibimizin yazmış olduğu yazımız üzerinden, ödeme sistemleri hakkındaki temel bilgilere ulaşabilirsiniz.

Daha detaylı bilgi için info@craftgate.io adresimize de sorularınızı iletebilirsiniz.

Bu içeriğimizi faydalı bulduysanız, Craftgate Bülten’e abone olarak yayınladığımız yeni içerikler hakkında bilgi sahibi olabilirsiniz.

Yazar

    Kişisel verileriniz İnternet Sitesi Aydınlatma Metni kapsamında işlenmektedir.

      Your personal data is processed within the scope of the Clarification Text on Our Website.