Web siteleri T.C. Kimlik numaralarını nereden biliyor?

frukoin

Megapat
Katılım
3 Eylül 2016
Mesajlar
613
Çözümler
2
Az önce özel bir hastaneden randevu aldım. Randevu için haliyle T.C kimlik numarası istendi. Kimlik numaramı bilerek yanlış yazdım. Örneğin kimlik numaram, 1111111111 ise ben, 11111111112 yazdım. Sistem ilk numarayı kabul ederken ikinci numarayı kabul etmedi. Tabii bu sadece hastane web sitesi ile kalmıyor. Diğer birçok web sitesi de yanlış kimlik numarası kabul etmiyor. Bu siteler bu numaraları nereden biliyor?
 
Bunu buraya yazacağına google'a yazsaydın TC kimlik No algoritmasını görürdün dostum. Bir algoritma var ve verdiğin 11 haneli sayı o kritere uyuyorsa o numara kabul ediliyor.
  • 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.
 
Hocam kimlik numaralarının bir formatı olur. Bunun dışında kabul olmaz. Aynı barkod sistemi gibi.
 
TC kimlik numarasının son 2 hanesi matematik ile hesaplanıyor. Yani 9 rakamın durumuna göre son 2 hane belirleniyor. Basit bir algoritması var. Girdiğiniz 9 haneyi göre 2 haneyi hesaplıyor. Ve girilenler ile karşılaştırıyor.

Java:
    public static boolean isLegitTCNumber(String tcNumber)
    {
        int ten = -1;
        int eleven = -1;
        if (tcNumber.length() != 11)
        {
            return false;
        } else
        {
            short odds = 0;
            short evens = 0;
            for (int i = 0; i < 11; i++)
            {
                char chr = tcNumber.charAt(i);
                if ((byte) chr >= 48 && (byte) chr <= 57)
                {
                    if (i < 9)
                    {
                        int value = (byte) chr - 48;
                        if (i % 2 == 0)
                        {
                            //ODD
                            odds += value;
                        } else
                        {
                            //EVEN
                            evens += value;
                        }
                    }
                } else
                {
                    return false;
                }
            }
            //
            ten = (odds * 7 - evens) % 10;
            eleven = (odds + evens + ten) % 10;
            return (Character.getNumericValue(tcNumber.charAt(9)) ==
                    ten && Character.getNumericValue(tcNumber.charAt(10)) == eleven);
        }
}
//JellyBeanci 2018
 
Az önce özel bir hastaneden randevu aldım. Randevu için haliyle T.C kimlik numarası istendi. Kimlik numaramı bilerek yanlış yazdım. Örneğin kimlik numaram, 1111111111 ise ben, 11111111112 yazdım. Sistem ilk numarayı kabul ederken ikinci numarayı kabul etmedi. Tabii bu sadece hastane web sitesi ile kalmıyor. Diğer birçok web sitesi de yanlış kimlik numarası kabul etmiyor. Bu siteler bu numaraları nereden biliyor?

Sanırım tüm TC numaralarının sonu çift haneli. Hastande tek sayı vermiş olabilirsiniz.
 
Algoritma ile alakalı ama öğrenmek istediğin bilgilerin çalınmış olma ihtimaliyse eğer yasalar izin vermediği için yıllar önce bir şekilde 55 milyon insanın kimlik bilgileri internete sızdı tüm detayıyla ondan sonra kullananlar yasal sorunlara takılmadan kullandı
 
TC kimlik numaraları aslında 9 haneli ve son 2 rakam bir nevi doğrulama sayılır. 10. hane TC'nin tek basamaklarının toplamının 7 katının çift hanelerin toplamının farkının mod10'una eşittir. 11. hane de ilk 10 hanenin mod10'una eşittir. Bahsettiğiniz siteler ya bu algoritmayı kullanarak geçersiz bir TC girildiğinde uyarıyor, ya da devlet veritabanlarına erişimleri var.
 
Devlet kurumlarına bağlı yerlerin sitelerinde bunun gibi şeyler olması çok doğal, sonuçta devletin veritabanına bağlılar.
Benzer durum kredi kartları için de geçerli. Kendi içerisinde kontrol algoritması var. Siz daha numarayı girerken hatalı demesi veya daha ilk 4 haneyi girdikten sonra Master mı yoksa Visa mı? olduğunu anlaması da bu şekilde gerçekleşiyor.
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı