TC kimlik numaranız satılmış olabilir, kişisel bilgileriniz tehlikede

http://resimler.haberler.com/haber/825/tc-kimlik-no-mesaisi-yapan-memura-yuzde-30-ek_o.jpgTc kimlik numaramız artık hayatımızın vazgeçilmez bir parçası. Heryerde kullanıyoruz. Kişisel bilgilerimizin gizli kalmasında çok titiz davransak da, bu bilgilerin aslinda çok fazla uğraş gerektirmeden (yasadışı olsa da) elde edilmesi çok kolay.

Kimlik numarası verilirken kullanılan basit bir algoritma var, şöyle alıntıladım:
TC Kimlik numaraları 11 basamaktan oluşmaktadır. İlk 9 basamak arasında kurulan bir algoritma bize 10. basmağı, ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
* 11 hanelidir.
* Her hanesi rakamsal değer içerir.
* İlk hane 0 olamaz.
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10'a bölümünden kalan, yani Mod10'u bize 10. haneyi verir.
* 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10'a bölümünden kalan, yani Mod10'u bize 11. haneyi verir.

Kendi kimlik no'm ile denedim algoritma çalıştı benim kimlik numaramda. Durum vahim.

Şuradaki tartışmalara bakarsanız aslında kişisel bilgilerimizin devlet eliyle dağıtıldığını (sistemlerin güvenli olmaması yüzünden), hatta bunun ticarete döküldüğünü göreceksiniz.
Ah güzel ülkem vah güzel ülkem diye hayıflanıp durdukça, daha çok tekerrür eder bu işler. :(

1500tl'ye Seçim kurulunun sitesine bir bağlantı kurarak kişisel bilgilerinizi tanımadığınız bilmediğiniz kişilere ulaştıran program pazarda kendine yer edinmişse vay halimize.

İşin ilginç bir yönü de var ki, 1500 TL ysk'nin sitesinden sorgulama yapan bir program için çok fazla :D Meraklı ve böyle işlere hevesli genç bir proğramcıya yazdirabilirsiniz çok daha az paraya :))

Bir de c# kodu verelim tam olsun, yukardaki algoritma için geçerli bi. yoksa kod size ysk'dan verileri getirmez, nöbetçi sazanlara duyurulur:

public static bool TcDogrulaV2(string tcKimlikNo)
{
bool returnvalue = false;
if (tcKimlikNo.Length == 11)
{
Int64 ATCNO, BTCNO, TcNo;
long C1,C2,C3, C4, C5,C6,C7,C8, C9,Q1,Q2;

TcNo = Int64.Parse(tcKimlikNo);

ATCNO = TcNo / 100;
BTCNO = TcNo / 100;

C1 = ATCNO % 10; ATCNO = ATCNO / 10 ;
C2 = ATCNO % 10; ATCNO = ATCNO / 10 ;
C3 = ATCNO % 10; ATCNO = ATCNO / 10 ;
C4 = ATCNO % 10; ATCNO = ATCNO / 10 ;
C5 = ATCNO % 10; ATCNO = ATCNO / 10 ;
C6 = ATCNO % 10; ATCNO = ATCNO / 10 ;
C7 = ATCNO % 10; ATCNO = ATCNO / 10 ;
C8 = ATCNO % 10; ATCNO = ATCNO / 10 ;
C9 = ATCNO % 10; ATCNO = ATCNO / 10 ;
Q1 = ((10-((((C1+C3+C5+C7+C9)*3)+(C2+C4+C6+C8))%10))%10);
Q2 = ((10-(((((C2+C4+C6+C8)+Q1)*3)+(C1+C3+C5+C7+C9))%10))%10);

returnvalue = ((BTCNO * 100)+(Q1 * 10)+Q2 == TcNo);
}
return returnvalue;
}

Hiç yorum yok:

Yorum Gönder