
Luhn algoritması, kredi kartı numaraları, IMEI numaraları ve diğer kimlik doğrulama numaralarının geçerliliğini kontrol etmek için kullanılan bir doğrulama algoritmasıdır. Algoritma, 1954 yılında Hans Peter Luhn tarafından geliştirilmiştir ve basit bir mod 10 kontrolü yaparak hataları tespit etmeye yardımcı olur.
Luhn Algoritması Nasıl Çalışır?
Luhn algoritması, verilen bir sayı dizisinin doğruluğunu kontrol etmek için aşağıdaki adımları takip eder:
- Sağdan sola doğru ilerleyin ve her ikinci rakamı belirleyin.
- Bu rakamları ikiyle çarpın. Eğer çarpım 9'dan büyükse, rakamları toplayın.
- Diğer rakamları değiştirmeden bırakın.
- Tüm rakamları toplayın.
- Toplam 10'un katıysa, numara geçerlidir; aksi takdirde geçersizdir.

IMEI Nedir? IMEI Sorgulama ve IMEI Klonlama
IMEI (International Mobile Equipment Identiy), mobil cihazların üretimi aşamasında üretici tarafından telefon için tahsis edilen ve yalnızca sizin cihazınızın sahip olduğu, 15 haneli özel ve benzersiz bir rakam kümesidir. IMEI numaralar...
Luhn Algoritması Kullanım Alanları
Luhn algoritması genellikle aşağıdaki alanlarda kullanılır:
- Kredi ve banka kartları: Visa, MasterCard, American Express gibi kart numaralarının doğrulanmasında.
- IMEI numaraları: Mobil cihazların benzersiz kimlik numaralarının kontrol edilmesinde.
- Kimlik ve hesap numaraları: Bazı devlet kimlik numaraları ve müşteri hesap doğrulamaları.
Luhn Algoritması Python ile Nasıl Uygulanır?
def luhn_check(card_number):
digits = [int(digit) for digit in str(card_number)]
checksum = 0
for i in range(len(digits) - 2, -1, -2):
doubled = digits[i] * 2
if doubled > 9:
doubled = doubled - 9
digits[i] = doubled
checksum = sum(digits)
return checksum % 10 == 0
print(luhn_check("4539148803436467")) # Çıktı: False (Geçersiz)
print(luhn_check("79927398713")) # Çıktı: True (Geçerli)