Bu rehberde, JavaScript kullanarak geçerli TC Kimlik Numaraları nasıl oluşturulacağını adım adım açıklayacağız. TC Kimlik No algoritması, belirli matematiksel kurallara dayanır ve bu kurallara uygun numaralar üretmek için bir JavaScript fonksiyonu geliştireceğiz.

TC Kimlik No Algoritması Nedir?

TC Kimlik Numarası 11 haneden oluşur ve şu kurallara uyar:

  1. İlk hane sıfır olamaz
  2. İlk 10 hanenin toplamının birler basamağı, 11. haneyi verir
  3. İlk 9 hanenin 7 katı ile 10. hanenin farkı, 10. haneyi verir
  4. Herhangi bir rakamdan oluşan aynı sayılar (11111111111 gibi) geçersizdir

JavaScript ile TC Kimlik No Üretme Kodu

Aşağıda, yukarıdaki kurallara uygun rastgele TC Kimlik Numaraları üreten bir JavaScript fonksiyonu bulunmaktadır:

 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
31
32
33
34
/**
 * Geçerli bir TC Kimlik Numarası üretir
 * @returns {string} 11 haneli TC Kimlik Numarası
 */
function generateTCNumber() {
  // İlk 9 haneyi oluştur (1-9 arasında rastgele 5 haneli sayı)
  var random_pool1 = Math.floor(Math.random() * (99999 - 10000 + 1)) + 10000;
  // Son 4 hane için rastgele 4 haneli sayı
  var random_pool2 = Math.floor(Math.random() * (9999 - 1000 + 1)) + 1000;

  // Sayıları diziye çevir
  var random_pool1_str = random_pool1.toString().split('');
  var random_pool2_str = random_pool2.toString().split('');

  // İlk 5 ve son 4 hanenin rakamlarını topla
  var k1_sum = random_pool1_str.reduce((total, num) => total + parseInt(num), 0);
  var k2_sum = random_pool2_str.reduce((total, num) => total + parseInt(num), 0);

  // TCKN'nin ilk 9 hanesini oluştur (çapraz birleştirme yöntemiyle)
  var tckn = '';
  for (var i = 0; i < random_pool2_str.length; i++) {
      tckn += random_pool1_str[i] + random_pool2_str[i];
  }
  tckn += random_pool1_str[random_pool1_str.length - 1]; // 9. hane

  // 10. ve 11. haneleri hesapla
  var digit_10 = (k1_sum * 7 - k2_sum) % 10;
  if (digit_10 < 0) digit_10 += 10; // Negatif sayı olmaması için
  
  var digit_11 = (k1_sum + k2_sum + digit_10) % 10;

  // Tüm haneleri birleştir ve döndür
  return tckn + digit_10 + digit_11;
}

Kullanım Örnekleri

Temel Kullanım

// Tek bir TC Kimlik No üretme
const tcNo = generateTCNumber();
console.log(tcNo); // Örnek çıktı: "12345678901"

Birden Fazla TC Kimlik No Üretme

// 5 adet TC Kimlik No üretme
for (let i = 0; i < 5; i++) {
    console.log(generateTCNumber());
}

Performans ve Güvenlik Notları

  1. Rastgelelik: Bu fonksiyon, JavaScript’in Math.random() fonksiyonunu kullanır. Daha güvenli rastgelelik için crypto.getRandomValues() kullanabilirsiniz.

  2. Kullanım Alanları:

    • Test verisi oluşturma
    • Demo uygulamaları
    • Eğitim amaçlı projeler
    • Form doğrulama testleri
  3. Yasal Uyarı: Bu fonksiyon sadece test ve eğitim amaçlıdır. Gerçek TC Kimlik Numaralarıyla çalışırken kişisel verilerin korunması kanunlarına (KVKK) dikkat ediniz.

Sık Sorulan Sorular

S: Bu fonksiyon gerçekten geçerli TC Kimlik Numaraları mı üretiyor? C: Evet, bu fonksiyon resmi TC Kimlik No algoritmasına uygun numaralar üretir. Ancak üretilen numaralar sadece test amaçlı kullanılmalıdır.

S: Node.js’te kullanabilir miyim? C: Evet, bu fonksiyon hem tarayıcıda hem de Node.js ortamında çalışacaktır.

S: Üretilen numaralar benzersiz mi? C: Fonksiyon rastgele sayılar kullandığı için aynı numarayı tekrar üretme ihtimali vardır. Eğer benzersizlik gerekiyorsa, daha önce üretilen numaraları takip etmeniz gerekir.

Sonuç

Bu makalede, JavaScript kullanarak nasıl geçerli TC Kimlik Numaraları oluşturabileceğinizi öğrendiniz. Bu kodu test verisi oluşturma veya TC Kimlik No doğrulama mantığını anlamak için kullanabilirsiniz.

Daha fazla bilgi için TC Kimlik No Algoritması sayfamızı ziyaret edebilirsiniz.


Not: Bu makalede verilen bilgiler ve kod örnekleri yalnızca eğitim ve test amaçlıdır. Resmi işlemler için her zaman Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü’nün resmi kaynaklarını kullanınız.