TC Kimlik No Algoritması

tc kimlik numaras%C4%B1 TC Kimlik No Algoritması   uncategorized Hiç Merak ettiniz mi icon smile TC Kimlik No Algoritması   uncategorized Şu bendeki Tc Kimlik numarasında neler saklı, içinde ne var ne yok ve nasıl hesaplanıyor gibi sorular icon smile TC Kimlik No Algoritması   uncategorized ?Hiç Merak ettiniz mi icon smile TC Kimlik No Algoritması   uncategorized Şu bendeki Tc Kimlik numarasında neler saklı, içinde ne var ne yok ve nasıl hesaplanıyor gibi sorular icon smile TC Kimlik No Algoritması   uncategorized ?
İki kısma ayırdım. İkinci kısmın kullanım alanı farklı olduğu için en alta yazdım.

İlk Kısım ; Soy kütüğündeki kişilerin adı soyadı, doğum tarihi ve Tc.Kimlik numarası bilgilerini bulma

11 Rakamlı TC numarasını 3 Bölüme Ayırın;
İlk 5 rakam – 4 ve son 2 rakam diye

ÖRNEK ;
12345-6789-02
İlk 5 rakam 3 ile toplanır.Sonraki 4 rakamdan çıkarırız eğer 4 sayı 4 ten küçükse başına 1 koyalım.

(İSTİSNAİ DURUM: T.C. KİMLİK NUMARASININ İLK 5 NUMARASININ 3. RAKAMI DEĞİŞTİĞİ ZAMAN, SON RAKAMDAN 4 YERİNE 6 ÇIKARILIR.)

12345-6789-02 BU ÖRNEK TC NOLU KİŞİDEN BİR ÖNCEKİ KİŞİYE BAKALIM.

12345+3=12348

6789-1=6788

02(4TEN KÜÇÜK OLDUĞU İÇİN BAŞINA 1 KOYARIZ. YANİ 12 OLUR). 12-4=8

TC NUMARASI ÇIKAR BÖYLECE: 12348-6788-X8

10.CU RAKAMI BULMAK İÇİN İSE;

İLK 10 RAKAMIN TOPLAMININ BİRLER BASAMAĞINDAKİ SAYI, 11. SAYIYA EŞİT OLMALIDIR.

YUKARIDAKİ İŞLEME DEVAM EDERSEK,

1+2+3+4+8+6+7+8+8+X=TOPLAMININ BİRLER BASAMAĞI T.C. KİMLİK NUMARASININ 11. SAYISINA EŞİT OLMASI GEREKİYORDU. O HALDE, 47+X SONUCU ÇIKAR. X YERİNE 1 KONULDUĞUNDA BU EŞİTLİK SAĞLANMAKTADIR.

ELDE EDİLEN T.C. KİMLİK NUMARAMIZ; 12348-6788-18

AYNI ŞEKİLDE DEVAM EDİLEREK (BU T.C. KİMLİK NOSU ÜZERİNDEN AYNI İŞLEMLERİ YAPARAK) AİLE KÜTÜĞÜNÜZDEKİ İLK KİŞİYE ULAŞILIR.

T.C. İÇİŞLERİ BAKANLIĞI NÜFUS VE VATANDAŞLIK İŞLERİ GENEL MÜDÜRLÜĞÜNÜN Kimlik Numarası Sorgulama Sayfası LİNKİ TIKLANIR. ELDE EDİLEN T.C. KİMLİK NO VE RESİM DOĞRULAMA KODU GİRİLİR.

NÜFUS MÜDÜRLÜĞÜNÜN SİTESİNDE BELİRTİLEN T.C. KİMLİK NO BULUNAMADI GİBİ BİR UYARI VERİRSE, BU T.C. KİMLİK NUMARASI DOĞRU AMA HERHANGİ BİRİNE VERİLMEMİŞ ANLAMINA GELİR. YANİ BU T.C. KİMLİK NUMARASINDAN DEVAM EDİLİR. BU UYARI NADİREN KARŞINIZA ÇIKAR..

T.C. KİMLİK NO: XXXXXXXXXXX GEÇERSİZDİR. BU UYARIDA İSE MUHAKKAK BİR İŞLEM HATASIZ YAPMIŞSINIZDIR. İŞLEMİ TEKRAR GÖZDEN GEÇİRMENİZ GEREKİR.

BAZEN SADECE KİŞİNİN ADI, DOĞUM TARİHİ VE T.C. KİMLİK NOSU BULUNURKEN SOYİSMİ GÖRÜLMEZ.

BULACAĞINIZ EN ESKİ KİŞİNİN DOĞUM TARİHİ BÜYÜK BİR OLASILIK 1840LI YILLARDAN İTİBARENDİR. T.C. KİMLİK NO BULMAYA DEVAM EDERKEN 1840LI YILLARDAN BİR ANDA 2000Lİ YILLARA AİT BİR DOĞUM TARİHİ VE FARKLI BİR SOYİSİM GÖRÜLDÜĞÜNDE FARKLI BİR AİLE SIRASINA GELİNMİŞTİR.

B) SOY KÜTÜĞÜNDEKİ KİŞİLERİN EKSİK KALAN DİĞER BİLGİLERİNİ (BABA ADI, ANNE ADI, DOĞUM YERİ, BİREY SIRA NO) BULMA:

YUKARIDA BELİRTİLEN İŞLEMLE AİLE SOY KÜTÜĞÜNÜZDEKİ İLK KİŞİYE KADAR ULAŞILIR. BULUNAN ŞAHSIN ADI SOYADI, DOĞUM YERİ, RESİM DOĞRULAMA ŞİFRESİ, CİLT NO, AİLE SIRA NO VE BİREY SIRA NO GİBİ BİLGİLER GİRİLİR. CİLT NO VE AİLE SIRA NO SİZİN BİLGİLERİNİZLE AYNIDIR. ŞİMDİ BU İŞLEMİ NASIL YAPACAĞIMIZI GÖRELİM.

DAHA ÖNCE YAPTIĞIMIZ İŞLEMLE KİŞİNİN ADI SOYADI T.C. KİMLİK NUMARASINI BULMUŞTUK. ŞİMDİ GERİ KALAN BİLGİLERİNİ BULALIM.

ÖRNEK: SİZİN CİLT NONUZ: 123, SİZİN AİLE SIRA NONUZ: 45,
AİLE SIRANIZDAKİ SİZDEN BİR ÖNCEKİ KİŞİNİN ADI SOYADI: ABCD EFGH (SİZDEN BİR ÖNCEKİ KİŞİYİ İLK YÖNTEMLE BULMUŞTUK)

Kimlik Numarası Sorgulama Sayfası (T.C. KİMLİK NO SORGULAMA) ADRESİNE GİRİLİP İSTENEN BİLGİLER (ADI-SOYADI, DOĞUM YERİ, RESİM DOĞRULAMA KODU, CİLT NO, AİLE SIRA NO, BİREY SIRA NO) BÜYÜK HARFLERLE YAZILIR.

CİLT NO VE AİLE SIRA NO KISMI SİZİN BİLGİLERİNİZLE AYNIDIR. FAKAT SIRA NUMARASINA 44 YAZILIR. (SİZİN SIRA NO 45 VARSAYMIŞTIK) ÇÜNKÜ BU KİŞİ SİZDEN ÖNCEKİ KİŞİDİR.

AİLE SIRANIZDAKİ İLK KİŞİYE DOĞRU ULAŞINCAYA KADAR AYNI İŞLEM YAPILIR

BELİRTİLMİŞ OLAN SORGU BİLGİLERİNE KARŞILIK KİŞİ BULUNMASINA RAĞMEN KİŞİ AD VE SOYAD TUTMAMAKTADIR.

ŞEKLİNDE Bİ UYARIYLA KARŞILAŞIRSANIZ O SIRADAKİ KİŞİNİN BİLGİLERİNİ EKSİK YA DA YANLIŞ GİRMİŞSİNİZDİR.

BELİTİLMİŞ OLAN SORGU BİLGİLERİNE KARŞILIK KİŞİ BULUNAMADI.UYARISINDA O SIRANIN DAHA ÖNCE O AİLEDEKİ BİR BAYANA AİT OLDUĞU VE DOLAYISIYLA EVLENİP GİTTİĞİ AİLENİN SOY KÜTÜĞÜNE KAYIT OLDUĞU İÇİN BOŞ OLDUĞU ANLAŞILIR. BU UYARIYI SIRA NUMARASI 44 TE VERDİĞİNİ DÜŞÜNÜRSEK, SIRA NUMARASINI 43 YAPAR VE AYNI BİLGİLERİ TEKRAR GİRERİZ.

ŞAYET BULDUĞUNUZ İLK KİŞİNİN SOY İSMİ YOKSA SOYADI BÖLÜMÜNÜ DOLDURULMAZ VE YANDAKİ BOŞ KUTUSU İŞARETLENİR

KİMLİĞİNİZDEKİ SIRA NO – BİREY SIRA NO, SİZİN AİLE KÜTÜĞÜNÜZDEKİ SIRANIZI BELİRLER.

T.C. KİMLİK NUMARANIZDAKİ SONRAKİ 4 RAKAM, SİZE O YÖREDEKİ (İLÇE-KÖY) KAYITLI SIRANIZI VERİR.

T.C. KİMLİK NUMARALARININ HEPSİ ÇİFT RAKAMLA BİTER.

AYRICA SİZDEN SONRA BİR KİŞİYİ BULMAK İÇİNSE BU FORMÜLÜN TAM TERSİ UYGULANIR. YANİ İLK 5 RAKAMA 3 EKLİYORSAK BU DURUMDA 3 ÇIKARTIRIZ. SONRAKİ 4 RAKAMDAN 1 ÇIKARTIYORSAK ŞİMDİ 1 EKLERİZ.


İkinci Kısım

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.

20314132488
MOD10(((2+3+4+3+4)*7) – (0+1+1+2)) = 8
MOD10(2+0+3+1+4+1+3+2+4+8) = 8

Çok da karışık olmayan bir algoritma, uygulamalarda regex olarak kullanmakda fayda var.

C# için kodlar aşağıdadır ;

public static bool TcDogrulaV2(string tcKimlikNo)
{
    bool returnvalue = false;
    if (tcKimlikNo.Length == 11)
    {
        Int64 ATCNO, BTCNO, TcNo;
        long C1,C2,C3, C4, C5,C6,C7,C8, C9,Q1,Q2;

        TcNo = Int64.Parse(tcKimlikNo);

        ATCNO = TcNo / 100;
        BTCNO = TcNo / 100;

         C1 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C2 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C3 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C4 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C5 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C6 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C7 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C8 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C9 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         Q1 = ((10-((((C1+C3+C5+C7+C9)*3)+(C2+C4+C6+C8))%10))%10);
         Q2 = ((10-(((((C2+C4+C6+C8)+Q1)*3)+(C1+C3+C5+C7+C9))%10))%10);

         returnvalue = ((BTCNO * 100)+(Q1 * 10)+Q2 == TcNo);
    }
    return returnvalue;
}
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
14 yorum
  1. Hocam Besmele ile başlamışsın koda müthiş yazmışsın. Eline sağlık kardeş

  2. hasan akçakoca says:

    yanlız bu eksik
    (İSTİSNAİ DURUM: T.C. KİMLİK NUMARASININ İLK 5 NUMARASININ 3. RAKAMI DEĞİŞTİĞİ ZAMAN, SON RAKAMDAN 4 YERİNE 6 ÇIKARILIR.)

    ekleme yapayım tc kimlik numarasının 7. rakamı değişirse 2 çıkarılır

  3. eren kesdi says:

    hocam verdiginiz formul ile ugrastim buldugum tc kimligi denedim tc kimlik hatali dedi :)
    bu algoritmayı programa dokmus biri var mıdır ? ben tc mi versem bana nüfustaki kütügüme kayıtlı ilk tc kimligi verse. :)

  4. hasan akçakoca says:

    yardımcı olurum

  5. hasan akçakoca says:

    programını hazırlamıştım o zamanlar öncesi ve sonrası her ikisi içinde çalışıyor

  6. CleineR says:

    formul ile gerçekten uğraştım ama kendi soy ağacımı çıkarmaya çalıştım bir türlü çıkaramadım ben size mail olarak atsam bana bilgileri döküm olarak verirmisiniz.

  7. selen says:

    ya ben birinin tc kimlik bilgilerine ulaşmak istiyorumm cilt no aile no ve diğer bilgileri biliyorum sadece birey sıra nosunu bilmediğim için bulamıyorum yardımcı olurmusunuzz lütfennn

  8. ekrem yağcı says:

    visual basic kodları

    Private Sub Command1_Click()

    ‘ – T.C. Kimlik No. doğrulama algoritması -

    ‘ Aşağıdaki kontrolleri yapar, girilen kimlik numarası doğruysa ekrana ‘doğru’ mesajı çıkartır.

    ‘ 1. basamak 0 olmamalı.
    ‘ Toplam 11 basamaklı olmalı.
    ‘ 1. 3. 5. 7. ve 9. basamakların toplamının 7 katından; 2. 4. 6. ve 8. basamakların toplamı çıkarıldığında elde edilen sayının birler basamağı, kimlik numarasının 10. basamağına eşit olmalı.
    ‘ İlk 10 basamağın toplamından elde edilen sayının birler basamağı, kimlik numarasının 11. yani son basamağına eşit olmalı.

    ‘ Erhan Yazıcı / Mimax / 2008

    Dim sira(10) As Byte

    For i = 1 To 10
    sira(i) = Mid(Text1, i, 1)
    toplam = toplam + sira(i)
    Next

    If Left(Text1, 1) > 0 And Len(Text1) = 11 And Right(Text1, 2) = Right(7 * (sira(1) + sira(3) + sira(5) + sira(7) + sira(9)) – (sira(2) + sira(4) + sira(6) + sira(8)), 1) & Right(toplam, 1) Then
    MsgBox “doğru”
    End If

    End Sub

  9. ahmet hamdi says:

    Şmdi hocam takip programı yapiyorum tc kimlik’in doğru olmasını istiyorum ve bu konuda çok yeniyim bana programlanmış şeklini gösterebilecek veya kodları nasıl yazacağımı anlatabilecek biri var mı ? yani textbox’ın içine mi ?

  10. Nurullah says:

    TcDogrulaV2 metodunu yaz.
    Txtbox a girdiğin veriyi, bir buton vs ile metoda gönder, mesela şöyle :
    bool dogrumu=TcDogrulaV2(txtTcKimlikNo.Text);
    if(dogrumu)
    MessageBox.Show(“Tc kimlik doğru”);
    else
    MessageBox.Show(“Tc kimlik yanlış”);
    Şeklinde.

  11. burak yılmaz says:

    pf ya hiç bişey anlamadım bana c# kodları lazımda yapamadım bi türlü yardımcı olsa biri gzl olrdu ya ödevim var tc no doğrulama ile ilgili program yapmam lazım

  12. enis says:

    açıklamanın en başında Sonraki 4 rakamdan çıkarırız demişsiniz Kaç çıkarıyoruz onu niye yazmamışsınız.Lütfen biraz daha muntazam bi şekilde yazarmısınız.Ben matematikçiyim.ama sizin yazdıklarınızla hesaplayamıyorum.

  13. enis says:

    bu cümle arapçadan farksız!

  14. Nurullah says:

    İyi bir matematikçi iseniz, o kodlarda yapılan işlemleri takip ederek algoritmasını çözebilirsiniz.
    Yok cümleyi anlamadıysanız Arapça değilde, size Türkçe cümleleri daha iyi anlamanıza yardımcı olabilecek bir meslektaşınızdan yardım isteyin.

Yorum yaz

XHTML: Kullanabileceğiniz taglar : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>