Üretilen numaralar ne işe yarar?
Türkiye'de kişi bilgisi alan hemen her form, T.C. kimlik numarası alanını algoritmayla denetler. Kayıt, ödeme, fatura ve başvuru akışlarını test ederken gerçek bir kişinin numarasını kullanmak kişisel veriyi test ortamına taşır. Algoritmaya uygun ama rastgele üretilmiş bir numara bu denetimden geçer ve gerçek veriye gerek bırakmaz.
- Form ve API testi: geçerli numaranın kabul edildiğini, geçersizin reddedildiğini sınayın.
- Test veritabanı: CSV, JSON ya da SQL INSERT çıktısıyla binlerce kayıtlık deneme verisi hazırlayın.
- Eğitim: kontrol hanelerinin nasıl hesaplandığını adım adım görün.
Geçerli ve geçersiz test numaraları
İyi bir test yalnızca doğru numaranın kabul edildiğini değil, hatalı numaranın doğru gerekçeyle reddedildiğini de sınar. Toplu üretimde "Geçersiz" kipini seçerseniz araç her numarada tek bir kuralı bilerek bozar; diğer kurallar geçer. Böylece doğrulama kodunuzun hangi hatayı yakalayıp hangisini kaçırdığını görürsünüz.
| Tür | Örnek | Ne sınanır |
|---|---|---|
| Geçerli | 12345678950 | Bütün kurallar geçer. |
| 10. hanesi hatalı | 12345678994 | 10. hane formülle uyuşmaz; 11. hane yanlış 10. haneye göre yeniden hesaplandığı için yalnızca bu kural bozulur. |
| 11. hanesi hatalı | 12345678952 | İlk 10 hane doğru, son hane toplamın birler basamağıyla uyuşmaz. |
| 0 ile başlayan | 02345678982 | Kontrol haneleri doğru hesaplanmıştır ama numara 0 ile başlar. |
| 10 haneli (eksik) | 1234567895 | Son hane eksiktir; uzunluk denetimini sınar. |
| 12 haneli (fazla) | 123456789504 | Sona bir rakam eklenmiştir; alanın 11 karakterle sınırlı olup olmadığını sınar. |
| Harf içeren | 12U45678950 | Bir hane harfle değiştirilmiştir; yalnızca rakam kabul eden alanı sınar. |
Bir numaranın hangi kuraldan kaldığını görmek için TC kimlik no doğrulama aracına yapıştırın.
Bu numaralar gerçek mi?
Hayır, kimseye verilmiş numaralar değildir; ama "gerçek bir kişiye ait olamaz" demek de doğru olmaz. Algoritmaya uyan 900.000.000 farklı numara vardır ve bunların bir kısmı kişilere verilmiştir. Rastgele üretilen bir numara tesadüfen bunlardan biriyle aynı olabilir. Bu yüzden üretilen numaraları yalnızca test ortamında kullanın, canlı sisteme ve gerçek işlemlere taşımayın.
Numara nasıl üretiliyor?
İlk 9 hane tarayıcının kriptografik rastgele sayı üreticisiyle (crypto.getRandomValues) seçilir; ilk hane 1 ile 9 arasındadır. Son iki hane bu dokuz haneden hesaplanır:
- 10. hane: 1, 3, 5, 7 ve 9. hanelerin toplamının 7 katından 2, 4, 6 ve 8. hanelerin toplamı çıkarılır; sonucun 10'a bölümünden kalan.
- 11. hane: ilk 10 hanenin toplamının 10'a bölümünden kalan.
Örneğin 123456789 ile başlayan numaranın kontrol haneleri 50 olur: 12345678950. Kod örnekleri ve etkileşimli hesap için TC kimlik numarası algoritması sayfasına bakın.