TC Kimlik Numaralarının Algoritması


Bildiğiniz gibi yıllardır kullanılmakta olan "TC Kimlik Numarası Dorğulama Sistemi" kısa bir süre önce kaldırıldı.  21.05.2009 tarihinde "Nüfus İşleri Genel Müdürlüğü"nün sayfasından hiçbir açıklama yapılmadan kaldırılan bu sistem çoğu kişinin işine yarıyordu. Özellikle anonim katılımı engellemeye çalışan ciddi internet siteleri için oldukça önemli bir servis idi. Personel veya müşteri bilgilerini doğrulamak amacıyla da tercih ediliyordu. İnternetten alışveriş yapacak kişiler arasında bir güvenlik önlemi olarak da kullanıldığına şahit oldum.

Tc Kimlik Numarası
Ne yazık ki uzun yıllardır ücretsiz olarak kullanılan bu sistem http://tckimlik.nvi.gov.tr/Web/default.aspx sayfasından kaldırılarak  farklı bir isim altında (Kimlik Paylaşım Sistemi) ücretli olarak herkesin hizmetine girmiştir. Peki neden böyle bir şey yapıldı? Gerçekten merak konusu. Edindiğim bir takım bilgilere göre e-devlet uygulaması ve güvenlik nedeniyle böyle bir şey yapılmış. Fakat akıllarda soru işaretleri oluşuyor. Servis güvenli değilse neden bugüne kadar sorunsuz bir şekilde kullanıldı? Önemli bir güvenlik sorunu var ise bu servis neden KPS (Kimlik Paylaşım Sistemi) adı altında ücretli olarak  devam ediyor?

Bahsetmek istediğim bir diğer konu ise bu servise ihtiyaç duyanların, ihtiyaçlarını nasıl karşıladıklarıdır. Çünkü hal böyle olunca alternatif çözümlere ihtiyaç duyuyor insan. Ufak bir araştırma sonucu kimlik numaralarının formülünün olduğunu öğrendim. Aynı zamanda doğrulama sistemine ihtiyaç duyanların bu formülü kullandığını anladım. Algoritma ile küçük web siteleri ve programlar bile hazırlanmış. Yalnız bu algoritma ile sadece kimlik numarasının geçerli olup olmadığını öğrenebiliyorsunuz. "Nüfus İşleri Genel Müdürlüğü TC Kimlik Numarası Doğrulama Sistemi" gibi değil. O yüzden ihtiyacın tam anlamıyla karşılandığı söylenemez. Çünkü art niyetli kişiler bu algoritmayı biliyor olabilir. Hatta algoritmayla uğraşmak yerine başkalarının TC kimlik numaralarını kullanırlar. Sonuçta kötü yine kötüdür. Bu algoritmaya göre yazılan kodlar işe yarıyor olsa da gördüğünüz gibi ihtiyaçları karşılamıyor. Biraz da algoritmadan bahsedeyim.

TC Kimlik No Algoritması Hakkında:

algoritma
Kimlik numaraları on bir basamaklı sayılardan oluşmaktadır. Yani on bir hanelidir. Algoritmadaki örnekler için Mernis Projesi kapsamında Atatürk'e verilen kimlik numarısını kullanacağım: 10000000146 [ Not: Sonundaki 46 rakamı algoritmadan kaynaklanmaktadır. Algoritmaya göre ilk numara olmaktadır. 10000000146 . Ayırca bununla ilgili hoş bir tesadüfte söz konusudur. İlk nüfus sayımının yapıldığı 1927 yılında Atatürk 46 yaşındaydı. ] Kendi kimlik numaranızda deneyebilrisiniz.

- Aslında kimlik numaralarımızın ilk dokuz basamağı bizim kimlik numaramızı belirlemektedir. Çünkü son iki basamak algoritmaya göre oluşturulmaktadır.

Formül:
a] 1. 3. 5. 7. ve 9. basamaklarının sayı değerleri toplamının 7 katından, 2. 4. 6. ve 8. basamaklarının sayı değerleri toplamı çıkartılır. Elde edilen sonucun 10'a bölümünden kalan(yani mod10) kimlik numaralarımızın 10. basamağına eşittir.
b] 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. basamaklarının sayı değerleri toplamı 10'a bölünür. Elde edilen kalan(yani mod10) bize kimlik numaralarımızın 11. basamağını verir.
1 0 0 0 0 0 0 0 1 4 6
(1+0+0+0+1)*7 - (0+0+0+0) = 4(mod10)
(1+0+0+0+0+0+0+0+1+4) = 6(mod10)

Temel formül budur. Türkiye Cumhuriyeti Kimlik Numarası sayfasından daha ayrıntılı bilgi edinebilirsiniz. Sayfanın son iki cümlesinde iki farklı formül daha anlatılmaktadır ("Üzerinde basit" ve "Ayrıca" diye başlayan cümleler).

Kimlik numaralarımızın algoritması bu şekildedir. Algortimadan da anlaşılacağı üzere tek rakamla biten bir TC kimlik numarası yoktur. Neden bütün TC kimlik numaralarının çift sayı olduğu başka bir deyişle çift rakamla bittiği sorusu da cevap bulmuş oluyor.

"TC Kimlik No" algoritması için yazılan kodlara ihtiyacı olanlar buralardan faydalanabilir. Örnek uygulamalara da bakabilrisiniz:
-Microsoft SQL Server - TC Kimlik No Doğrulama Algoritması
-TC Kimlik numarası doğrulama kodları ve örnek uygulaması
-TC Kimlik No Algoritması - C#/VB

2 yorum:

KAANCA01 dedi ki...

11 RAKAMLI TC NUMARASINI 4 BÖLÜME AYIRIRIZ.

İLK 5 RAKAM — SONRAKİ 4 RAKAM - 10.RAKAM VE SON RAKAM DİYE.

ÖRNEK TC NO:

12345-6789-0-2

İLK 5 RAKAM 3 İLE TOPLANIR..

SONRAKİ 4 RAKAMDAN 1 ÇIKARILIR.

SON RAKAMDAN İSE 4 ÇIKARILIR. (SON RAKAM 4 TEN KÜÇÜKSE BAŞINA 1 KONUR..

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

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

12345+3=12348

6789-1=6788

02(4’TEN 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

Tckimlik numaraları hakkında… | Fatih Aygün dedi ki...

[...] No sayfalarında TC Kimlik numaralarının formüllerini vermiştim. 3 yıl sonra görsem de, TC Kimlik Numaralarının Algoritması sayfasının sonunda, benim wikipedi’ye eklediğim bir cümlenin referans edildiğini görmek [...]

Yorum Gönder

 
Copyright 2009-2013 © trksh.org - Takip eden geride kalır.
Gizlilik
Teşekkürler bloggerthemes.net