• 08-12-2024, 20:27:24
    #1
    TC Kimlik Numarası algoritması, Türkiye Cumhuriyeti vatandaşlarına verilen 11 haneli kimlik numarasının nasıl oluşturulduğunu belirleyen matematiksel bir kurallar bütünüdür. Bu numara, Türk vatandaşlarının kimliklerinin doğrulanması, işleme alındığı kurumlar tarafından kişisel bilgilerin takibi ve benzeri amaçlarla kullanılır. TC Kimlik Numarası'nın oluşturulması ve doğrulaması belirli kurallara dayanır.
    İşte TC Kimlik Numarası algoritması hakkında temel bilgiler:

    1. TC Kimlik Numarasının Yapısı


    TC Kimlik Numarası 11 hanelidir ve her hanenin belirli bir kuralı vardır:
    • 1. Haneden 10. Haneye kadar: Bu 10 hane, kişinin rastgele atanmış sayılardır. Ancak bu sayılar belirli kurallara göre hesaplanır.
    • 11. Hane: Son hane, algoritma ile hesaplanan bir kontrol haneleridir. Yani bu hane, diğer sayılara bağlı olarak matematiksel bir işlemle belirlenir.

    2. Algoritma


    TC Kimlik Numarası oluşturulurken, belirli matematiksel kurallara uyulması gerekir. Aşağıda, bu kurallar detaylı bir şekilde açıklanmıştır:
    • Birinci Kural: İlk hane 0 olamaz. Yani TC Kimlik Numarası'nın ilk rakamı 0'dan farklı bir rakam olmalıdır.
    • İkinci Kural: İlk 10 rakamdan, 1. ve 3. haneler, 5. ve 7. haneler gibi grup numaralarına göre bir dizi hesaplama yapılır.

    10. Hane Hesaplaması:


    Bu hane, bir tür toplam kullanılarak hesaplanır:
    • 1, 3, 5, 7 ve 9. hanelerin toplamı ile 2, 4, 6, 8. hanelerin toplamı arasındaki fark alınır.

    11. Hane Hesaplaması:


    Bu hane de, önceki 10 hane kullanılarak hesaplanır:
    • İlk 10 hanenin toplamı belirli bir modül ile bölünür ve bu modül sonucunda bir hane elde edilir.



    3. Son Hane Kontrolü


    Son rakam, bu 10 hanelik sayının doğruluğunu kontrol eder. Bu, diğer hanelerle birleştirildiğinde hatalı bir TC Kimlik Numarası olmasını engelleyen bir kontrol yöntemidir.

    4. TC Kimlik Numarası Doğrulama


    Bir TC Kimlik Numarası'nın geçerli olup olmadığını doğrulamak için kullanılan yöntemler şunlardır:
    • 11 haneli olmalıdır.
    • İlk rakamı 0 olmamalıdır.
    • Tüm diğer kuralların geçerli olup olmadığı kontrol edilmelidir.

    5. Kullanım Alanları


    TC Kimlik Numarası, şu amaçlarla kullanılabilir:
    • Kamu ve özel sektördeki kurumlar tarafından bireylerin kimliklerini doğrulamak.
    • Sağlık, bankacılık, sigorta işlemleri gibi birçok alanda kişisel verilerin güvenli bir şekilde işlenmesi.
    • Devletin dijital hizmetlerine erişim.
    TC Kimlik Numarası, bir kişinin kimlik bilgisinin doğruluğunu sağlamak amacıyla matematiksel bir kontrolle birlikte, Türkiye Cumhuriyeti vatandaşlarına ve bazı yabancılara atanmış özel bir numaradır.



    Doğrulama yapmak için Örnek kodlar :

    VB.Net İçin Örnek Kod :

    Public Function ValidateTC(tc As String) As Boolean
        ' TC Kimlik Numarası 11 haneli olmalıdır
        If tc.Length <> 11 Then
            Return False
        End If
    
        ' İlk hane 0 olamaz
        If tc(0) = "0"c Then
            Return False
        End If
    
        Dim toplam1 As Integer = 0
        Dim toplam2 As Integer = 0
    
        ' İlk 10 haneyi topla
        For i As Integer = 0 To 8 Step 2 ' 1, 3, 5, 7, 9. haneleri
            toplam1 += Integer.Parse(tc(i).ToString())
        Next
    
        For i As Integer = 1 To 8 Step 2 ' 2, 4, 6, 8. haneleri
            toplam2 += Integer.Parse(tc(i).ToString())
        Next
    
        ' 10. haneyi kontrol et
        Dim onuncuHane As Integer = (toplam1 * 7 - toplam2) Mod 10
        If Integer.Parse(tc(9).ToString()) <> onuncuHane Then
            Return False
        End If
    
        ' 11. haneyi kontrol et
        Dim toplam As Integer = 0
        For i As Integer = 0 To 9
            toplam += Integer.Parse(tc(i).ToString())
        Next
    
        If toplam Mod 10 <> Integer.Parse(tc(10).ToString()) Then
            Return False
        End If
    
        Return True
    End Function



    C# için Örnek Kod :

    public bool ValidateTC(string tc)
    {
        // TC Kimlik Numarası 11 haneli olmalıdır
        if (tc.Length != 11)
            return false;
    
        // İlk hane 0 olamaz
        if (tc[0] == '0')
            return false;
    
        int toplam1 = 0;
        int toplam2 = 0;
    
        // İlk 10 haneyi topla
        for (int i = 0; i < 9; i += 2) // 1, 3, 5, 7, 9. haneleri
        {
            toplam1 += int.Parse(tc[i].ToString());
        }
    
        for (int i = 1; i < 8; i += 2) // 2, 4, 6, 8. haneleri
        {
            toplam2 += int.Parse(tc[i].ToString());
        }
    
        // 10. haneyi kontrol et
        int onuncuHane = (toplam1 * 7 - toplam2) % 10;
        if (int.Parse(tc[9].ToString()) != onuncuHane)
            return false;
    
        // 11. haneyi kontrol et
        int toplam = 0;
        for (int i = 0; i < 10; i++)
        {
            toplam += int.Parse(tc[i].ToString());
        }
    
        if (toplam % 10 != int.Parse(tc[10].ToString()))
            return false;
    
        return true;
    }


    PHP İçin Örnek Kod:

    function validateTC($tc)
    {
        // TC Kimlik Numarası 11 haneli olmalıdır
        if (strlen($tc) != 11)
            return false;
    
        // İlk hane 0 olamaz
        if ($tc[0] == '0')
            return false;
    
        $toplam1 = 0;
        $toplam2 = 0;
    
        // İlk 10 haneyi topla
        for ($i = 0; $i < 9; $i += 2) { // 1, 3, 5, 7, 9. haneleri
            $toplam1 += (int)$tc[$i];
        }
    
        for ($i = 1; $i < 8; $i += 2) { // 2, 4, 6, 8. haneleri
            $toplam2 += (int)$tc[$i];
        }
    
        // 10. haneyi kontrol et
        $onuncuHane = ($toplam1 * 7 - $toplam2) % 10;
        if ((int)$tc[9] !== $onuncuHane)
            return false;
    
        // 11. haneyi kontrol et
        $toplam = 0;
        for ($i = 0; $i < 10; $i++) {
            $toplam += (int)$tc[$i];
        }
    
        if ($toplam % 10 !== (int)$tc[10])
            return false;
    
        return true;
    }
  • 08-12-2024, 20:37:07
    #2
    elinize sağlık