Tc Kimlik No onaylama

Türkiye Cumhuriyeti vatandaşı olan herkesin bir adet “Tc Kimlik No” bulunmaktadır. Tüm işlemlerimizde kullandığımız “Tc Kimlik No” nasıl hesaplandığını biliyor musunuz? Bir projede sizden “Tc Kimlik No” onaylanmanız istendi, ne yapacaksınız? Hemen başlayalım; Öncellikle “Tc Kimlik” çok basit bir algoritması var. Tc Kimlik No, 11 haneden oluşmaktadır. Son iki hanemiz, ilk 9 haneden türetilmektedir.

* İ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 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 bize 11. haneyi verir.

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;

}

Benzer Yazılar

Yorumlar

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Arama
RSS
Beni yukari isinla