Delphi TC Kimlik No Doğrulama Algoritması

TC Kimlik no ile ilgili geliştirme yaptığımız uygulamalarda kullanıcı boş geçebiliyor veya saçma tc kimlik numarası girebiliyorlar ama sizde işlemlerinizi tc kimlik no üzerinden yaptığınızda karışıklıklara sebep olabiliyor.

Delphi TC Kimlik No Doğrulama Algoritması

Algoritmanın kuralları
  • TC Kimlik numaraları 11 basamaktan oluşmaktadır. İlk 9 basamak arasında kurulan bir algoritma bize 10. basmağı, ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
  • 11 hanelidir.
  • Her hanesi rakamsal değer içerir.
  • İlk hane 0 olamaz.
  • 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10′a bölümünden kalan, yani Mod10′u bize 10. haneyi verir.
  • 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10′a bölümünden kalan, yani Mod10′u bize 11. haneyi verir.

Delphi Kodu

Delphi TC Kimlik No Doğrulama Algoritması
5 (100%) 1 oy

6 Cevaplar

  1. Ertan dedi ki:

    Yukarıdaki kod yaklaşık 500 farklı TCNo doğruladıktan sonra bugün bir tane doğrulamadı. https://tckimlik.nvi.gov.tr/TCKimlikNo/Dogrulama.aspx sitesinden kontrol edildiğinde TCNo doğru. Sebebini anlayamadım. Acaba farklı kontroller geektiren TCNo şekilleri mi çıktı?

    • Murat ÖNER dedi ki:

      Merhaba algoritma ile ilgili bir sıkıntı söz konusu olmuş olabilir servis kullanma imkanınız varsa en sağlıklısı servis kullanmak ama offline çalışacak bir proje ise algoritmadaki sıkıntıyı bulmak gerekli bu durumda.

  2. barutali dedi ki:

    T.C Kimli no doğrulama algoritması değişmiş olabilir.

    • Murat ÖNER dedi ki:

      Değişmiş olduğunu düşünmüyorum ama delphi kısmında değilde c# ve javascript tarafında aynı algoritmayı halen kullanıyorum ama dediğim gibi delphi tarafında sıkıntı olabilir.

  3. Ayhan dedi ki:

    • Murat ÖNER dedi ki:

      Teşekkür ederim desteğin için ayhan abi artık Delphi yazmayınca çalışmıyor diye yorum yazan arkadaşlara örnek kod bulup test edip paylaşamıyordum iyi oldu bu eline sağlık.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.