Toplu TC Kimlik No Üretici
Toplu TC kimlik no üretici ile 10.000'e kadar benzersiz, algoritmaya uygun TC kimlik numarası üret; JSON, CSV, SQL ya da düz liste olarak kopyala veya indir.
45095650464
68410531446
72255470204
54013963180
13835168364
53049947720
74023042798
68510789778
59834733394
22471072522
79449201736
72640602142
55191846166
61110244098
20104586972
68155642322
77886913694
73765747916
75351415292
79341887748
11280172530
41234762920
63516981560
19386889574
11695138756
11716182096
65426197482
80784730546
95911202896
48292412170… 70 satır daha
Toplu TC kimlik no üretici rehberi
Hangi biçimi ne zaman seçeceğin, veritabanına aktarırken dikkat edeceklerin ve benzersizliğin neden önemli olduğu.
Toplu TC kimlik no üretici neden gerekir?
Tek bir form testinde bir numara yeterlidir, ama bir uygulamayı gerçeğe yakın koşullarda denemek için binlerce kayıt, yani toplu TC kimlik numarası gerekir. Toplu TC kimlik no üretici bu listeyi tek tıkla, tekrar etmeyen numaralarla hazırlar. Geliştirme ve staging veritabanlarını doldurmak (seed), yük ve performans testlerinde her sanal kullanıcıya farklı bir kimlik vermek, veri taşıma (migration) betiklerini büyük tablolarda denemek ve raporlama ekranlarını dolu verilerle görmek en yaygın ihtiyaçlardır.
Bu işler için gerçek müşteri verisini kopyalamak hem KVKK açısından risklidir hem de üretim verisinin geliştirici makinelerine yayılması demektir. Algoritmaya uygun sentetik numaralar, doğrulama kurallarından geçen ama kimseye ait olduğunu bilmediğimiz verilerle aynı testi yapmanı sağlar.
Hangi çıktı biçimini seçmeliyim?
JSON
Cypress ve Playwright fixture dosyaları, Postman koleksiyonları, mock API yanıtları ve Jest ya da Vitest test verileri için en uygun biçimdir. "Dizi" seçeneği düz bir metin dizisi, "Nesne" seçeneği her satırı {"tckn": "..."} biçiminde verir; alan adını kendi modeline göre değiştirebilirsin.
CSV
Excel ve Google Sheets'te açmak, içe aktarma ekranlarını denemek ya da JMeter'ın CSV Data Set Config bileşeniyle her sanal kullanıcıya ayrı bir numara vermek için kullanılır. Dosya UTF-8 kodlamasıyla ve başlık satırıyla iner.
SQL
Seçtiğin tablo ve alan adıyla hazır INSERT komutları üretir. Dosyayı veritabanı istemcinde çalıştırman ya da migration betiğine eklemen yeterlidir.
Liste
Her satırda bir numara olan düz metin. k6 ya da Locust gibi araçlarda satır satır okumak ve kabuk betiklerinde kullanmak için en sade biçimdir.
Yük testinde TC kimlik no listesi kullanmak
Yük testinde her sanal kullanıcının farklı bir kimlikle kayıt olması gerekir; aynı numarayla yüzlerce kayıt denemesi gerçek trafiği yansıtmaz ve benzersizlik kuralına takılır. JMeter'da CSV biçiminde indirdiğin dosyayı CSV Data Set Config bileşenine verip tckn sütununu bir değişken olarak kullanabilirsin. k6'da ise düz liste biçimindeki dosyayı open() ile okuyup SharedArray içine yüklemek, belleği bütün sanal kullanıcılar arasında paylaştırır. Senaryondaki kullanıcı sayısından fazla numara gerekiyorsa birkaç kez toplu TC no üret ve dosyaları birleştir; her liste kendi içinde benzersizdir. Çoklu TC kimlik no listelerini test ortamına yüklemeden önce toplu doğrulama aracıyla bir kez kontrol etmek de iyi bir alışkanlıktır.
Veritabanına aktarırken dikkat edilecekler
TC kimlik numarasını sayı değil metin olarak sakla; CHAR(11) ya da VARCHAR(11) uygun bir alan tipidir. Numara üzerinde hiçbir zaman aritmetik işlem yapılmaz ve bazı sistemlerde baştaki sıfırlar ya da biçim önemli olabilir. Gerçek uygulamada kimlik alanına benzersiz bir indeks koyduysan test verisinin de bu kısıtı sağlaması gerekir; bu yüzden üretilen liste her zaman benzersizdir.
SQL Server tek bir VALUES listesinde en fazla 1.000 satır kabul eder. Bu sınıra takılmaman için SQL çıktısı 1.000'er satırlık ayrı INSERT komutlarına bölünür; aynı dosya MySQL, PostgreSQL ve SQLite'ta da değişiklik yapmadan çalışır.
Benzersizlik neden önemli?
İlk hanesi 1 ile 9 arasında olan ve son iki hanesi hesaplanan TC kimlik numarası sayısı 900 milyondur. Bu büyük bir sayı gibi görünse de rastgele seçilen 10.000 numara arasında en az bir tekrar çıkma olasılığı yaklaşık yüzde 5'tir. Benzersiz indeksi olan bir tabloya veri basarken bu, yirmi denemeden birinde testin "duplicate key" hatasıyla durması demektir.
Bu araç her numarayı bir kümede tutarak tekrarları baştan ayıklar. Kendi kodunda üretiyorsan aşağıdaki örneklerdeki gibi bir küme (Set) kullanman yeterlidir. Doğrulama kodunu da test etmek istiyorsan listeyi toplu doğrulama aracına yapıştırabilirsin.
function tcknUret() {
const d = [1 + Math.floor(Math.random() * 9)];
for (let i = 0; i < 8; i++) d.push(Math.floor(Math.random() * 10));
const tek = d[0] + d[2] + d[4] + d[6] + d[8];
const cift = d[1] + d[3] + d[5] + d[7];
d.push(((tek * 7 - cift) % 10 + 10) % 10);
d.push(d.reduce((a, b) => a + b, 0) % 10);
return d.join('');
}
function tcknListesi(adet) {
const set = new Set();
while (set.size < adet) set.add(tcknUret());
return [...set];
}
import random
def tckn_uret() -> str:
d = [random.randint(1, 9)] + [random.randint(0, 9) for _ in range(8)]
tek = d[0] + d[2] + d[4] + d[6] + d[8]
cift = d[1] + d[3] + d[5] + d[7]
d.append((tek * 7 - cift) % 10)
d.append(sum(d) % 10)
return "".join(map(str, d))
def tckn_listesi(adet: int) -> list[str]:
s: set[str] = set()
while len(s) < adet:
s.add(tckn_uret())
return list(s)
function tcknUret(): string
{
$d = [random_int(1, 9)];
for ($i = 0; $i < 8; $i++) $d[] = random_int(0, 9);
$tek = $d[0] + $d[2] + $d[4] + $d[6] + $d[8];
$cift = $d[1] + $d[3] + $d[5] + $d[7];
$d[] = (($tek * 7 - $cift) % 10 + 10) % 10;
$d[] = array_sum($d) % 10;
return implode('', $d);
}
function tcknListesi(int $adet): array
{
$set = [];
while (count($set) < $adet) $set[tcknUret()] = true;
return array_map('strval', array_keys($set));
}
Sık sorulan sorular
Adet sınırı, dosya biçimleri ve tekrarsızlık hakkında sorular.
Toplu TC kimlik numarası üretirken tek seferde en fazla kaç numara alabilirim?
Tarayıcıda tek seferde 10.000 benzersiz numara üretilir. Daha büyük veri setleri için aşağıdaki kodu kendi projende çalıştırabilir ya da test verisi API'sini kullanabilirsin.
Üretilen numaralar birbirinden farklı mı?
Evet. Liste oluşturulurken her numara bir kümede tutulur, tekrar eden numara listeye eklenmez. 10.000 numaralık bir listede aynı numara iki kez geçmez.
SQL çıktısı hangi veritabanlarında çalışır?
Standart çok satırlı INSERT INTO ... VALUES sözdizimi kullanılır; MySQL, MariaDB, PostgreSQL, SQLite ve SQL Server'da çalışır. SQL Server tek bir VALUES listesinde en fazla 1.000 satır kabul ettiği için çıktı 1.000'er satırlık INSERT komutlarına bölünür.
JSON çıktısını nerede kullanabilirim?
Cypress ve Playwright fixture dosyalarında, Postman koleksiyonlarında, mock API yanıtlarında ve unit test verilerinde. "Nesne" seçeneği her numarayı {"tckn": "..."} biçiminde verir; alan adını değiştirebilirsin.
Yabancı kimlik numarası da üretebilir miyim?
Evet. "Tür" seçeneğinden "Yabancı (99)" seçersen 99 ile başlayan, aynı algoritmaya uygun numaralar üretilir. Tek numara için yabancı kimlik no üretici sayfasına bakabilirsin.
Numaralar sunucuya gönderiliyor ya da kaydediliyor mu?
Hayır. Liste tamamen tarayıcında oluşturulur ve dosya doğrudan bilgisayarına iner. Hiçbir numara sunucuya gönderilmez.
Her üretimde farklı numaralar mı geliyor?
Evet, her seferinde yeni rastgele numaralar üretilir. Testlerinde her koşuda aynı veriyi kullanmak istiyorsan bir kez üretip dosyayı projene eklemen yeterli.
Ayarlarımı paylaşılabilir bir linke çevirebilir miyim?
Evet. Adresin sonuna ?adet=1000&format=json gibi parametreler ekleyebilirsin. Sayfa bu ayarlarla açılır ve listeyi hemen üretir.
Aynı işte lazım olacak diğer araçlar
Vergi numarası, IBAN, test kartı ve sahte kişi verisi: hepsi aynı mantıkla, tarayıcında.