T.C. Kimlik numaralarını sahip olduğu algoritma ile doğrulayabiliriz.
Merhaba,
T.C. Kimlik numaralarının kökünde doğruluğunu sağlamak amacıyla bir algoritma mevcut.
Kimlik numaralarımız 11 haneden oluşmaktadır.
11 hanenin son iki basamağı ilk dokuz rakam ve sonrasında ilk 10 rakamın algoritma ile hesaplaması sonucu elde edilir.
Bu yazımız da son iki rakamı ilk 9 rakam ile doğrulayacağız.
Algoritymaya göre;
Ben C# ile hazırladım, javascript ve benzeri kodlamalarda da kullanabilirsiniz.
Kodlarımız;
public static bool TCKNDogrulama(string TCKN) { if (TCKN.Length != 11 || TCKN.Substring(0, 1) == "0" || Convert.ToInt32(TCKN.Substring(9, 2)) % 2 != 0) return false; // Tanımlamalarımızı yapıyoruz int TekHaneToplam = 0; // 10. hane algoritması için 1,3,5,7,9 haneleri toplamı int CiftHaneToplam = 0; // 10. hane algoritması için 2,4,6,8 haneleri toplamı int OnHaneninToplami = 0; // İkinci hane için gerekli ilk 10 hane toplamı // T.C. Kimlik Numarasını karakterlerini array dizine atıyoruz. char[] TCKArray = TCKN.ToCharArray(); for (int i = 0; i < TCKArray.Length; i++) { // Önce toString yapıyoruz, sonra int e çeviriyoruz. int Karakter = Convert.ToInt32(TCKArray[i].ToString()); // Bu koşula bağlı kalarak TekHAneToplam larını elde ediyoruz. // 1'nin mod2 si 0 a eşitse ve kimlik numarasının 10 hanesinden öncekileri baz alıyoruz. if (i % 2 == 0 & i < 9) TekHaneToplam += Karakter; // Yukarıdaki if den kalanları alıyoruz. 10 hanesindenöncekileri tabi. else if (i < 9) CiftHaneToplam += Karakter; // burada da son karakter hariç tümünü topluyoruz. if (i < 10) OnHaneninToplami += Karakter; } // Algoritmaya göre; // - TekHaneToplam 'ı 7'ye çarpıyor // - CiftHaneToplam dan çıkartıyor // - mod10 alıyoruz // 10. haneyi elde ediyoruz string HANE_ON = (((TekHaneToplam * 7) - CiftHaneToplam) % 10).ToString(); // - OnHaneninToplami mod10 alıyoruz // - Bize 11. haneyi veriyor string HANE_ONBIR = (OnHaneninToplami % 10).ToString(); // Burada da TCKN'nun son iki hanesini alıyoruz // Elde ettiğimiz değerlere eşit mi bakıyoruz // Eşitse true döndürüyoruz if (TCKN.Substring(9, 2) == HANE_ON + HANE_ONBIR) return true; // Yukarıdaki if'i aşar koşul doğrulanmazsa false döndürüyoruz. return false; }
Başka bir yazıda görüşmek dileğiyle.
Öğrenmek istediğiniz, merak ettiğiniz bir şeyler varsa yorum alanından benimle paylaşabilirsiniz.
Yorumlar
Ortalama