TC Kimlik Numarası Doğrulama

by Uğur Çelenk 24. Şubat 2008 09:24

    Eskiden webservice kullanarak tc kimlik numarasını kolaylıkla sorgulayabiliyorduk ama artık sorgulamak hem paralı(sorgulama başı 10kuruş sanırm) hem de bir takım prosedürler gerektiriyor.
   Eğer sorgulama başına para ödemek istemiyorsanız, aşağıda yazmış olduğum kodu kullanarak %90lık bir oranla, girilen tc kimlik numarasının, doğru bir tc kimlik numarası olduğunu bulabilirsiniz..
   Öncelikle kontrolün nasıl çalıştığından bahsedelim;
   İlk 10 sayının toplamının birler basamağı, 11. karaktere eşit olması durumunda TC Kimlik numarası geçerli bir numaradır (Kendi Tc kimlik numaranız ile deneyebilirsiniz)

   Örnek : Tc Kimlik No olarak 01234567895 alalım
                ilk 10 rakamı toplayalım --> Sonuç 45
                45 sayısının birler basamağındaki rakam : 5
                Tc kimlik numarasının son rakamı : 5 
                
Kullanmanız gereken fonksiyon ise : 

public static Boolean TcKimlikKontrol(String kimlikNo)
{
Tc = kimlikNo;
int no = 0;
no = no + Convert.ToInt32(Tc.Substring(0, 1));
no = no + Convert.ToInt32(Tc.Substring(1, 1));
no = no + Convert.ToInt32(Tc.Substring(2, 1));
no = no + Convert.ToInt32(Tc.Substring(3, 1));
no = no + Convert.ToInt32(Tc.Substring(4, 1));
no = no + Convert.ToInt32(Tc.Substring(5, 1));
no = no + Convert.ToInt32(Tc.Substring(6, 1));
no = no + Convert.ToInt32(Tc.Substring(7, 1));
no = no + Convert.ToInt32(Tc.Substring(8, 1));
no = no + Convert.ToInt32(Tc.Substring(9, 1));

string son = Convert.ToString(no).Substring(1, 1);

   if (son == Tc.Substring(10, 1))
  {return true;}
  else{return false;}


Örnek kullanım:  TcKimlikKontrol(
01234567895) // true dönerse doğru, false dönerse hatalı bir kimlik numarasıdır. 

(Algoritmayı kullanmadan önce, kullanıcının %10luk bir oranla bu rakamı tutturabilme ihtimalini gözönüne almayı unutmayınız (11 haneli bir rakam girdiğini varsayarsak))

(Not: Fonksiyonu çok eskiden yazmıştım,kodta düzenleme yapmadım. Tc kimlik numarasının elemanlarını bir array'e atıp, döngü ile toplama işlemini gerçekleştirebilirsiniz(önerilir) )

Yorumlar

17.04.2008 23:01:41 #

İlk 10 sayının toplamının birler basamağı, 11. karaktere eşit olması 3+9+3+9+2+2+5+3+1+6=113 son rakam 2 Laughing nasıl olucak bu iş Smile beni senin algoritma kabul etmiyor...

Depresif | Yanıtla

17.04.2008 23:03:34 #

pardon yanlış hesaplamışım Laughing 3+8+3+9+2+2+5+3+1+6=42 ve son rakam 2 Laughing süper işlem ne diyeyim Laughing

Depresif | Yanıtla

12.03.2009 09:20:21 #

Alp Karakış

Burada numaranın geçerliliği kontrol ediliyor ama gerçek mi değil mi bilemiyoruz. Bunun için nüfus idaresnin ilgili web servisi lazım dimi.
www.tcno.org adresinde sorgulama ve doğrulama işlemi yapılabiliyorç. Sayfaya baktım frame falan yok. Bu adamlar nasıl yapmış peki. Bu servisi sadece devlet kurumları kullanımıyor mu. Başvursak biz de alabilir miyiz?

Alp Karakış | Yanıtla

12.03.2009 22:49:15 #

@Alp, bu kodla sadece numaranın geçerli olup olmadığını anlayabiliyoruz, büyük ihtimalle tcno.org bu hizmeti parasını ödeyip yapıyordur. eskiden bu web servisi bedavaydı, artık ücretli olmasına rağmen başvuran herkese webservis hizmetini vermiyorlar. Detaylı bilgileri burdan alabilirsin -> http://tckimlik.nvi.gov.tr/Web/WebServices.aspx

Uğur ÇELENK | Yanıtla

10.04.2009 04:42:02 #

Mehmet Ali Ardıç

A) soy kütüğündeki kişilerin adı – soyadı, doğum tarihi ve t.c. kimlik numarası bilgilerini bulma:

11 rakamlı tc numarası 4 bölüme ayrılır.

Tc kimlik nosunun ilk 5 rakamı — sonraki 4 rakamı – 10. Rakamı ve son rakamı diye.

Örnek tc no:

12345-6789-0-2

bu örnek tc kimlik nolu kişiden bir önceki kişiyi bulmak için;

Tc kimlik nonun ilk 5 rakamı 3 ile toplanır. (12345+3=12348)

Sonraki 4 rakamdan 1 çıkarılır. (6789-1=6788)

Son rakamdan ise 4 çıkarılır. (son rakam 4 ten küçükse başına 1 konur. (2<4 olduğu için, başına 1 konur ve 12-4=8)

(istisnai durum: t.c. kimlik numarasının ilk 5 numarasının 3. Rakamı değiştiği zaman , örneğin tc kimlik nosunun ilk 5 rakamı yani 12399 iken 3 eklediğimizde 12402 olduğunda 3. Rakam 3 iken 4 olmuştur. Bu nedenle son rakamdan 4 yerine 6 çıkarılır. T.c. kimlik numarasının ikinci 4 numarasının 2. Rakamı değiştiği zaman, örneğin tc kimlik nosunun ikinci grubundaki 4 rakamın 2 .rakamı değiştiğinde yani 6700 den 1 çıkartıldığında sonuç 6699 olur ve bu durumda son rakamdan 4 yerine 2 çıkarılır.)

12345-6789-0-2 bu örnek tc nolu kişiden bir önceki kişiye bakalım.

12345+3=12348

6789-1=6788

2(4’ten küçük olduğu için başına 1 koyarız. Yani 12 olur). 12-4=8

10. Rakam dışındaki tüm rakamlar bulunmuştur.

Tc numarası çıkar böylece: 12348-6788-x8

10.cu rakamı bulmak için ise;

İlk 10 rakamın toplamının birler basamağındaki sayı, 11. Sayıya eşit olmalıdır.

Yukarıdaki işleme devam edersek,

1+2+3+4+8+6+7+8+8+x=toplamının birler basamağı t.c. kimlik numarasının 11. Sayısına eşit olması gerekiyordu. O halde, 47+x sonucunun birler basamağı 8’e eşit olması gerekmektedir. X yerine 1 konulduğunda bu eşitlik sağlanmaktadır.

Elde edilen t.c. kimlik numaramız; 12348-6788-18

Aynı şekilde elde edilen yeni tc kimlik numarası üzerinden aynı yöntem uygulanarak aile kütüğünüzdeki ilk kişiye ulaşılır.

T.c. içişleri bakanlığı nüfus ve vatandaşlık işleri genel müdürlüğünün

http://tckimlik.nvi.gov.tr/Web/VerifyIdentityNumber.aspx

linki tıklanır. Elde edilen t.c. kimlik no ve resim doğrulama kodu girilir.

Nüfus müdürlüğünün sitesinde “belirtilen t.c. kimlik no bulunamadı” gibi bir uyarı verirse, bu t.c. kimlik numarası doğru ama herhangi birine verilmemiş anlamına gelir. Yani bu t.c. kimlik numarasından devam edilir. Bu uyarı nadiren karşınıza çıkar.

“t.c. kimlik no: xxxxxxxxxxx geçersizdir.” Bu uyarıda ise muhakkak bir işlem hatasız yapmışsınızdır. İşlemi tekrar gözden geçirmeniz gerekir.

Bazen sadece kişinin adı, doğum tarihi ve t.c. kimlik nosu bulunurken soyismi görülmez.

Bulacağınız en eski kişinin doğum tarihi büyük bir olasılık 1840’lı yıllardan itibarendir. T.c. kimlik no bulmaya devam ederken 1840’lı yıllardan bir anda 2000’li yıllara ait bir doğum tarihi ve farklı bir soyisim görüldüğünde farklı bir aile sırasına gelinmiştir.

B) soy kütüğündeki kişilerin eksik kalan diğer bilgilerini (baba adı, anne adı, doğum yeri, birey sıra no) bulma:

Yukarıda belirtilen işlemle aile soy kütüğünüzdeki ilk kişiye kadar ulaşılır. Bulunan şahsın adı – soyadı, doğum yeri, resim doğrulama şifresi, cilt no, aile sıra no ve birey sıra no gibi bilgiler girilir. Cilt no ve aile sıra no sizin bilgilerinizle aynıdır. Şimdi bu işlemi nasıl yapacağımızı görelim.

Daha önce yaptığımız işlemle kişinin adı – soyadı t.c. kimlik numarasını bulmuştuk. Şimdi geri kalan bilgilerini bulalım.

Örnek: sizin cilt nonuz: 123, sizin aile sıra nonuz: 45,

Aile sıranızdaki sizden bir önceki kişinin adı – soyadı: abcd efgh (sizden bir önceki kişiyi ilk yöntemle bulmuştuk)

Kimlik numarası sorgulama sayfası

http://tckimlik.nvi.gov.tr/Web/QueryIdentityNumber.aspx adresine girilip istenen bilgiler (adı-soyadı, doğum yeri, resim doğrulama kodu, cilt no, aile sıra no, birey sıra no) büyük harflerle yazılır.

Cilt no ve aile sıra no kısmı sizin bilgilerinizle aynıdır. Fakat sıra numarasına 44 yazılır. (sizin sıra no 45 varsaymıştık) çünkü bu kişi sizden önceki kişidir.

Aile sıranızdaki ilk kişiye doğru ulaşıncaya kadar aynı işlem yapılır

“belirtilmiş olan sorgu bilgilerine karşılık kişi bulunmasına rağmen kişi ad ve soyad tutmamaktadır.” Şeklinde bi uyarıyla karşılaşırsanız o sıradaki kişinin bilgilerini eksik ya da yanlış girmişsinizdir.

“belitilmiş olan sorgu bilgilerine karşılık kişi bulunamadı.” Uyarısında o sıranın daha önce o ailedeki bir bayana ait olduğu ve dolayısıyla evlenip gittiği ailenin soy kütüğüne kayıt olduğu için boş olduğu anlaşılır. Bu uyarıyı sıra numarası 44 te verdiğini düşünürsek, sıra numarasını 43 yapar ve aynı bilgileri tekrar gireriz.

Şayet bulduğunuz ilk kişinin soy ismi yoksa “soyadı” bölümünü doldurulmaz ve yandaki “boş” kutusu işaretlenir.

Ayrıca sizden sonra bir kişiyi bulmak içinse bu formülün tam tersi uygulanır. Yani ilk 5 rakama 3 ekliyorsak bu durumda 3 çıkartırız. Sonraki 4 rakamdan 1 çıkartıyorsak şimdi 1 ekleriz.

Formül bir kaç kez kullanıldığında daha basitleşmiş olduğunu göreceksiniz.

Mehmet Ali Ardıç | Yanıtla

15.04.2009 22:18:27 #

Arkadaşlar Yaklaşık 230.000  Tc Numarasında Denenmiş Algoritma Doğrulaması.

master.web.tr/...lik-no-dogrulama-function-v2.aspx

ihtiyacı olan arkadaşlara duyrulur.

Recep Güven | Yanıtla

13.07.2009 01:29:43 #

ece

bişey diemiyorum ama süpersnz yane SmileSmile

ece | Yanıtla

Yorum ekle




biuquote
  • Yorum
  • Canlı önizleme
Loading



Etiket Bulutu