dqagent
← Blog

T.C. Kimlik Numarası (TCKN) Doğrulama Algoritması: Veritabanınızda Nasıl Kontrol Edersiniz?

· 5 dk okuma

T.C. Kimlik Numarası (TCKN) 11 haneli bir tanımlayıcıdır. Bankalar, sigorta şirketleri ve fintech'ler bu değeri müşteri tablolarında saklar. Hatalı biçimli bir değer genellikle veri girişi hatasına, bozuk bir veri göçüne ya da canlı ortama sızmış bir test kaydına işaret eder. Son iki hane sağlama (kontrol) hanesi olduğundan, bu hataların çoğunu harici bir servise başvurmadan basit bir hesapla yakalayabilirsiniz.

Kurallar

  • Değer tam olarak 11 haneden oluşur ve yalnızca rakam içerir.
  • İlk hane hiçbir zaman 0 olamaz.
  • 10. hane, ((1., 3., 5., 7., 9. hanelerin toplamı) × 7 − (2., 4., 6., 8. hanelerin toplamı)) mod 10 sonucuna eşittir.
  • 11. hane, ilk 10 hanenin toplamının mod 10 değerine eşittir.

Üçüncü kuralın bazı girdilerde negatif sonuç ürettiğine dikkat edin. SQL Server, JavaScript, Java ve C#'ta % operatörü bu durumda negatif değer döndürebilir; haneyle karşılaştırmadan önce sonucu normalize edin. Python'ın % operatörü pozitif bölen için zaten negatif olmayan sonuç verir.

Test edilmiş bir uygulama

def is_valid_tckn(value: str) -> bool:
    if len(value) != 11 or not value.isdigit() or value[0] == "0":
        return False
    d = [int(c) for c in value]
    odd = sum(d[0:9:2])    # 1st, 3rd, 5th, 7th, 9th digits
    even = sum(d[1:8:2])   # 2nd, 4th, 6th, 8th digits
    return d[9] == (odd * 7 - even) % 10 and d[10] == sum(d[:10]) % 10

is_valid_tckn("10000000146")  # True  (widely used test number)
is_valid_tckn("10000000147")  # False (last digit changed)

Geçerli bir sağlama neyi kanıtlamaz?

Algoritmadan geçmek yalnızca numaranın biçimsel olarak doğru olduğunu gösterir. Sıfırla başlamayan rastgele 11 haneli dizilerin yaklaşık yüzde biri bu kontrolü geçer; biçimi doğru bir numara yine de hiç kimseye, başka birine ya da vefat etmiş bir kişiye ait olabilir. Bir TCKN'nin gerçek bir kişinin adı ve doğum tarihiyle eşleştiğini doğrulamak resmi kimlik doğrulama servisini gerektirir; bu, bir veritabanı kalite kontrolünün kapsamı dışındadır.

Veri kalitesi ve KVKK çalışmalarında kullanımı

Profilleme çalışmasında her TCKN kolonunda biçim kontrolünden geçemeyen değerlerin sayısını hesaplayın ve zaman içinde izleyin. Ani bir artış genellikle yeni bir kaynak sisteme ya da değişen bir aktarım işine işaret eder. Ayrıca aynı değerin çok sayıda müşteride tekrarlanıp tekrarlanmadığına bakın; bu çoğunlukla 11111111110 gibi bir yer tutucuyu gösterir. TCKN KVKK kapsamında kişisel veridir; bu nedenle kontrolleri verinin zaten bulunduğu yerde çalıştırın ve harici araçlara aktarmaktan kaçının.

DQ-Agent, TCKN biçim ihlalini (11 hane ve sağlama algoritması) kritik bir geçerlilik anomalisi olarak değerlendirir ve on-premise anomali tespiti fazının bir parçası olarak çalıştırır; veriniz sunucunuzdan çıkmaz.

Kendi şemanızla 30 dakikalık demo

Sunum değil, canlı kurulum. SQL Server bağlantınızı dakikalar içinde profilleriz.