C# da TC kimlik no algoritma ile doğrulama


Deprecated: Function create_function() is deprecated in /var/www/vhosts/digitaldunyam.net/coder.digitaldunyam.net/wp-content/plugins/codecolorer/lib/geshi.php on line 4698

Başlığı daha sade anlaşılır tutmak isterdim ama saat gecenin 02:36’sı kusura bakmayın. Hikaye blogu değil burası dediğinizi, daha şimdiden sinirlendiğinizi hissedebiliyorum. Küçük büyük bir çok projede TC kimlik numarsı doğrulama gibi sıkıntımız olmuştur. Bilindiği gibi TC kimlik numarası rastgele sayılardan oluşmaz, belirli algoritma sonucunda oluşmuştur. Bunun hakkında fazla konuşmadan isteyenler için burada ki adreste algoritma hakkında detaylı bilgiye ulaşabilir.

Algoritmalardan hariç webservis ile de internet üzerinden TC kimlik no doğrulanmakta. (Webservisi kullanmak için bu “https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx” adresi kullanabilirsiniz) Ama biz webservis fazla kurcalamadan internetsiz organik yöntemler ile hızlı bir şekilde doğrulamayı planlıyoruz.

C# ile basit form üzerinde textbox, label, buton kullanarak anlama babında yaptığımız uygulama ile yazımıza devam edelim. TC kimlik numaramızın ilk 10 rakamın toplamının birler basamağı, 11. rakamı vermekte. Bu şekilde TC kimli no kontrolü yapılabilmekte. Bu algoritma ile yola çıkarak programımızı geliştirdik. Form için gerekli elemanları ekledikten sonra kod kısmına geçerek daha iyi anlayabiliriz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
        private void button1_Click(object sender, EventArgs e)
        {

            if (11 != textBox1.Text.Length)  // Girilen sayı 11 haneli olmak zorunda
            {
                label1.Text = "Eksik veya fazla sayı girildi";
            }

            else
            {
                int toplam = 0; // 1. Açıklama
               
                for (int i = 0; i < textBox1.Text.Length - 1; i++) // 2. Açıklama
                {
                    toplam += Convert.ToInt32(textBox1.Text[i].ToString()); // 3. Açıklama
                }
               
                if (toplam.ToString()[1] == textBox1.Text[10]) // 4. Açıklama  
                {
                    label1.Text = "Tc kimlik Numarası Doğru";  // 5. Açıklama
                }
                else
                {
                    label1.Text = "Tc kimlik Numarası Yanlış";
                }

            }


        }

Buton click olayı ile başlayan programımızın açıklamasını kodların yorum kısmından alttaki açıklamalarla öğrenebilirsiniz;

  1. Uygulamanın kopma noktası bu değişken. 0 değeri vererek tanımlıyoruz. Bu şekilde yapılmasını amacı değişkenin for blogu içinde kullanıması için.
  2. Girilen Tc kimlik numarasının ilk 10 rakamını almak için length dan 1 eksiğini döndürdük
  3. Girilen sayıları soldan sağa doğru tek tek topladık, sonucu toplam değişkeninde biriktirdik.
  4. Burada toplam sayının birler basamağını almak için 1 yazdık 0 ile onlar basamağındaki sayıyı alırdık. Alınan sayı ile girilen tc kimlik numarasının 10. indeksi yani (0 dan başladığını hatırlayalım) 11. sayı ile karşılaştırdık.
  5. Eşit ise TC kimlik numarası doğru…

“C# da TC kimlik no algoritma ile doğrulama” için bir cevap

  1. merhaba benim biraz yardıma ihtiyacım olacak nasıl yardımcı olabilirsiniz .
    text box tc no girince aşağıdaki text box lara kişinin adı soyadı doğum yeri adresi v.s. yazdırmak istiyorum mernis şifrem var .

    yardımcı olursanız sevinirim kamu yararına kullanılacak (üçretsiz).
    teşekkürler.

Bir Cevap Yazın

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