Bir Bilgisayar Mühendisi İçin Programlama Dili, Öğrendiklerini Sınadığı, Deneyler Yaptığı Bir Labaratuardır. Ve Mühendisler Deneylerini, Kestiremedikleri Sonuçları Gözlemlemek İçin Değil, Öngördükleri Sonuçları Doğrulamak İçin Yaparlar...
  TC Kimlik No Algoritması
   Bilirsiniz, tc kimlik numaraları 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. Javascriptten vbasice çevirdim. Bu kodla rastgele bir şekilde geçerli tc kimlik numaraları elde edebilirsiniz. Hatta rastgele elde edilen numarayı sorgulatıp Türkiye'nin en şanssız adamını bulabilirsiniz :D Yok şaka, denemeyin bence, boşuna meşgul etmeyin sorgu sayfasını...
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

 
Okunma Sayısı: 917
Yayınlanma Tarihi: Blogun eski sürümü ile yazılmış, tarih kaydı bulunmuyor...
Anahtar Kelimeler: tckimlikno, kimlik, numarası, algoritması, nasıl, tckn

Onaylı yorum bulunmuyor.
Yorum/Görüş Bildir
Yorumları html kodu veya özel karakter kullanmadan, yazım kurallarına
dikkat ederek ve düzgün bir Türkçe kullanarak yazalım...
 
    Atasoy Blog v3.0 © 2009-2010 Hüseyin Atasoy | Tema Tasarımı: Hüseyin Atasoy
AtasoyWeb 1 yaşında, bu tema benden ona doğum günü hediyesi :)    
Programlama Günlüğü > Visual Basic > TC Kimlik No Algoritması
Menü