Luhn Algoritma Kontrolcüsü

Luhn yalnızca kontrol hanesini doğrular, kartın aktif olduğunu doğrulamaz.

Luhn algoritması (ISO/IEC 7812-1), kredi kartı numaralarını, IMEI cihaz tanımlayıcılarını, Kanada SIN’lerini, ABD NPI’lerini ve diğer bazı sayılandırma sistemlerini tek haneli yazım hatalarından koruyan bir kontrol toplamıdır. Bir rakam dizisini (boşluklar ve çizgiler göz ardı edilir) ekleyin; algoritma sayının geçip geçmediğini gösterir ve çiftleme ile toplama adımlarını gerçekleştirerek isterseniz elle doğrulayabilirsiniz.

Luhn kontrolünün nasıl hesaplandığı

  1. 1

    Rakam olmayan karakterleri kaldır

    Boşluklar, çizgiler ve noktalar kaldırılır. Yalnızca 0–9 aralığındaki rakamlar sayılır.

  2. 2

    Sağdan itibaren her ikinci rakamı iki katına çıkarın.

    Sonundan bir önceki hâle başlayarak, her ikinci rakam iki katına çıkarılır.

  3. 3

    Her iki katlanan değerin rakamlarını toplayın.

    Eğer iki katlanma sonucu 14 olursa, 1 + 4 = 5 ekleyin. Bu durum, herhangi bir iki katlanma sonucu 10'un üzerindeyken bu değerden 9'u çıkarmakla eşdeğerdir.

  4. 4

    Elde edilen tüm değerleri topla

    Katlanıp indirgenmiş rakamları, dokunulmamış rakamlarla toplayın.

  5. 5

    10'a bölünebilirliğini kontrol edin

    Eğer toplam 0 ile bitiyorsa sayı geçerlidir; aksi takdirde geçersizdir.

Uygulama örneği

4539 1488 0343 6467’yi kontrol edin:

Konum (sağdan sola) Rakam İki katına çıktı mı? Değer
1 7 hayır 7
2 6 evet 12 → 3
3 4 hayır 4
4 6 evet 12 → 3
5 3 hayır 3
6 4 evet 8
7 3 hayır 3
8 0 evet 0
9 8 hayır 8
10 8 evet 16 → 7
11 4 hayır 4
12 1 evet 2
13 9 hayır 9
14 3 evet 6
15 5 hayır 5
16 4 evet 8

Toplam: 80. 80 mod 10 = 0 → geçerlidir.

Luhn nerede kullanılır

Sistem Uzunluk Luhn tarafından korunuyor mu?
Visa, Mastercard, Discover 13–19 rakam evet
American Express 15 rakam evet
IMEI (GSM cihazı kimliği) 15 haneli evet
Kanada Sosyal Sigortası 9 rakamlı evet
ABD Ulusal Tedavi Sağlayıcısı Tanımlayıcısı 10 rakamlı evet
İsrail Kimlik Numarası (Teudat Zehut) 9 rakamlı evet
ISBN-13 13 rakamlı hayır (ağırlıkları 1 ve 3 olan mod 10 kullanılır)

Luhn neyi tespit eder, neyi kaçırır

  • Tespit eder: tüm tek haneli hataları ve komşu rakamların çoğu (ancak tümü değil) yer değiştirmesini.
  • Kaçırır: 09 ↔ 90 yer değiştirmesi ve buna benzer birkaç çift. Bu bir yazım hatası kontrolüdür, güvenlik kontrolü değildir.
  • Bir güvenlik özelliği değildir. Luhn’a uygun bir numara oluşturmak kolaydır. Ödeme ağ geçitlerinde PAN doğrulaması yalnızca Luhn’u değil; aynı zamanda ihraççı aralıklarını, CVV, AVS ve 3-D Secure gibi yöntemleri de kullanır.

Sık Sorulan Sorular

Hayır. Luhn yalnızca numaranın matematiksel olarak doğru olup olmadığını doğrular; kartın verilip verilmediği, içinde para bulunup bulunmadığı veya çalınmış olup olmadığı konusunda hiçbir bilgi vermez. Gerçek doğrulama işlemi, yetkilendirme sırasında kart veren kurumda gerçekleşir.

Evet, son rakam kontrol hanesidir ve toplamı her zaman 10’a bölünebilir hale getirecek şekilde seçilebilir. IMEI üreticileri ve test kart numaraları da bu şekilde çalışır.

Bu yöntem, tüm tek haneli yer değiştirme ve çoğu komşu haneli yer değiştirmeyi tespit eder; ancak bazı çiftler (örneğin 09 ↔ 90) kontrol toplamını değişmez bırakır. Daha güçlü yöntemler (ISBN-13, Verhoeff, Damm), karmaşıklığı artırmakla birlikte daha yüksek hata kapsama kapasitesi sağlar.

Checker tamamen tarayıcınızda çalışır; bu nedenle hiçbir veri iletilmez. Ancak gereksiz yerlere canlı PAN verilerini yapıştırmak kötü bir alışkanlıktır. Deneylerde test numaraları (örneğin 4242 4242 4242 4242) kullanın.

Luhn her uzunlukta kullanılabilir; ancak belirli şemalar için standartlaştırılmıştır (genellikle 9–19 rakamlıdır). Bu kontrol mekanizması uzunluğu sınırlamaz.

İlgili Araçlar

Araç diğer dillerde mevcuttur