MCP ile bağlan →

Hesaplamaya Girin

Formül

Reklam

Sonuç

Luhn Kontrolü
VALID
Hane sayısı 11
Luhn toplamı 70
Toplam mod 10 0
Kontrol hanesi (son) 3

Luhn Algoritması Nedir?

"Mod 10" algoritması olarak da bilinen Luhn algoritması, IBM bilim insanı Hans Peter Luhn tarafından 1954 yılında geliştirilen basit bir kontrol toplamı (checksum) formülüdür. Kredi ve banka kartı numaraları, telefonların IMEI seri numaraları ve pek çok ülkenin kimlik numarası gibi tanımlayıcıları doğrulamak için kullanılır. Tek haneli hataları ve çoğu rakam yer değiştirme hatasını yakalar; ancak bu bir kriptografik güvenlik önlemi değil, yalnızca temel bir veri bütünlüğü kontrolüdür.

Hesaplayıcı Nasıl Kullanılır?

Doğrulamak istediğiniz numarayı ilgili alana yazmanız yeterli (boşluklar ve tireler otomatik olarak yok sayılır). Hesaplayıcı rakamları işler, Luhn kontrol toplamını uygular ve numaranın GEÇERLİ mi yoksa GEÇERSİZ mi olduğunu; ayrıca toplam değeri, toplamın mod 10 sonucunu ve sondaki kontrol hanesini gösterir.

Formülün Açıklaması

Rakamları sağdan sola doğru okuyun. En sağdaki (kontrol) haneyi olduğu gibi bırakın, ardından bir atlayarak her ikinci haneyi iki katına çıkarın. İki katı 9'dan büyük bir sayı verirse, sonuçtan 9 çıkarın (bu, sayının iki rakamını toplamakla aynıdır; örneğin \(8\times2=16 \to 1+6=7\)). Elde edilen tüm değerleri toplayın. Toplam 10'a tam bölünüyorsa numara Luhn kontrolünü geçer.

$$\text{Geçerli} \iff \left(\sum_{i=0}^{n-1} f(d_i)\right) \bmod 10 = 0 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= i\text{-th digit of } \text{Number} \text{ (from right)} \\ f(d_i) &= \begin{cases} d_i & i \text{ even} \\ 2d_i - 9\,[2d_i>9] & i \text{ odd} \end{cases} \end{aligned} \right.$$
Luhn algoritmasında sağdan başlayarak rakamların iki katına çıkarılmasını gösteren düz şema; bir atlamalı rakamlar iki katına çıkarılıp toplanır
Luhn algoritması sağdan itibaren her ikinci rakamı iki katına çıkarır, ardından tüm rakamları toplar.

Çözümlü Örnek

79927398713 numarasını ele alalım. Sağdan başlayarak her ikinci haneyi iki katına çıkarıp 9'dan büyük değerleri indirgediğimizde, düzenlenmiş hanelerin toplamı 70 olur. \(70 \bmod 10 = 0\) olduğundan numara geçerlidir.

Luhn kontrolünün mod 10 testiyle bitip geçerli veya geçersiz olarak dallandığını gösteren düz akış şeması
Toplam 10'a tam bölünüyorsa numara geçerlidir.

Sıkça Sorulan Sorular

Luhn sonucunun geçerli olması kartın gerçek olduğu anlamına gelir mi? Hayır. Bu yalnızca numaranın doğru biçimde oluşturulduğunu gösterir; ilgili hesabın var olup olmadığını veya bakiyesini kontrol etmez.

Hangi karakterler kullanılabilir? Yalnızca rakamlar dikkate alınır; boşluklar, tireler ve diğer semboller hesaplamadan önce ayıklanır.

İki katına çıkarırken neden 9 çıkarılıyor? İki katı 9'dan büyük olan bir haneden 9 çıkarmak, o sayının iki rakamını toplamakla aynı sonucu verir; bu da Luhn kuralının tam olarak gerektirdiği işlemdir.

Son güncelleme: