AtasoyWeb - Hüseyin Atasoy
AtasoyWeb
Hüseyin Atasoy

TC Kimlik Numarası Algoritması

TC kimlik numaraları nasıl oluşturuluyor? Neden her 11 haneli numara tc kimlik numarası olamıyor?

Bilirsiniz, tc kimlik numaralarımız rastgele oluşturulmuyor. Peki bu numaralar nasıl oluşturuluyor? Neden her 11 haneli numara tc kimlik no olamıyor? Bu sorunun cevabını ysk.gov.tr/ysk/secmenBilgi.jsp adresinde buldum. Adamlar tc kimlik no geçerlilik kontrolü için gereken fonksiyonu http://www.ysk.gov.tr/ysk/js/gen_validatorv2.js adresinde koymuşlar. O dosyadaki kodu inceleyerek yazdığım aşağıdaki kodla rastgele bir şekilde geçerli tc kimlik numaraları elde edebilirsiniz.

Private Function tcknkontrol(tckn As Double)
    Dim dizi(1 To 9) As Integer
    gecici = Int(tckn / 100)
    gecici2 = Int(tckn / 100)

    For i = 9 To 1 Step -1
        dizi(i) = gecici2 Mod 10
        gecici2 = Int(gecici2 / 10)
    Next i

    deg1 = dizi(9) + dizi(7) + dizi(5) + dizi(3) + dizi(1)
    deg2 = dizi(8) + dizi(6) + dizi(4) + dizi(2)
    toplam = deg1 * 3 + deg2
    kontrol1 = (10 - (toplam Mod 10)) Mod 10

    deg1 = kontrol1 + dizi(8) + dizi(6) + dizi(4) + dizi(2)
    deg2 = dizi(9) + dizi(7) + dizi(5) + dizi(3) + dizi(1)
    toplam = deg1 * 3 + deg2
    kontrol2 = (10 - (toplam Mod 10)) Mod 10

    gecici = gecici * 100 + kontrol1 * 10 + kontrol2
    If gecici = tckn Then tcknkontrol = True Else tcknkontrol = False
End Function

Private Function rastgelets(altsinir, ustsinir As Double) As Double
    Randomize
    rastgelets = Int((ustsinir - altsinir + 1) * Rnd + altsinir)
End Function

Private Sub Form_Load()
    Form1.Visible = False
    Dim a As Double
    a = 10000000000#
    While tcknkontrol(a) = False
        DoEvents
        a = rastgelets(10000000000#, 99999999999#)
    Wend
    Clipboard.Clear
    Clipboard.SetText a
    MsgBox a & " - Numara panoya kopyalandı, kullanmak için : ctrl+v", _
           vbInformation, "Geçerli bir TC kimlik no bulundu."
    End
End Sub
Yazar: Hüseyin Atasoy
Yayın tarihi: 19/02/2009 14:45
Anahtar kelimeler: tc kimlik no, kimlik numarası algoritması

Yorum Gönder

 
Yorumunuzu -1. yoruma yanıt olarak gönderiyorsunuz. Yanıtlamayı iptal etmek için buraya tıklayabilirsiniz.

 

Yorumlar (6)

Mehmet Emin
Yanıtla
01/07/2014 13:49
#1

Ben hem bilen hem bilmeyen birisiyim, bu kodlar hangi programla üretilir?
*.vbs denedim sondaki vb'yi görünce.

Hüseyin Atasoy
Yanıtla
30/08/2014 15:47
#2

Buradaki kodu visual basic 6 ile derleyebilirsiniz.

Selim Senoz
Yanıtla
07/05/2020 12:51
#3

Bir süredir TC kimlik kontrolü için olan algoritmayı arıyordum. İnternette değişik formüller var, ama yanlış sonuç veriyorlardı. Sizin algoritma işi gördü. Teşekkür ederim.

Hüseyin Atasoy
Yanıtla
07/05/2020 22:57
#4

Sevindim. Teşekkürler.

Ufuk Erol
Yanıtla
16/01/2021 00:08
#5

Hocam şimdi buradaki fonksiyonların hangi eleman olduklarını yazmamışsınız düzenleme imkanınız var mı birde gelecekten selam!

Hüseyin Atasoy
Yanıtla
16/01/2021 18:44
#6

Açıkçası hiç hatırlamıyorum. Zaten kodu, yazıda bahsettiğim scripti baz alarak yazmıştım.

 
Şu an bu sayfada 1, blog genelinde 9 çevrimiçi ziyaretçi bulunuyor. Ziyaretçiler bugün toplam 949 sayfa görüntüledi.
 
Sayfa 49 sorgu ile 0.061 saniyede oluşturuldu.
Atasoy Blog v4 © 2008-2025 Hüseyin Atasoy