Hoşgeldin Misafir

Delphi/TC Kimlik No Doğrulama Algoritması

MiRaT

13 Kas 2017
2,077 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Kod:
Function TCKimlikDogrula(TCNo : String) : Boolean;
var
 bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz,onn,onbir,
 ilk,son,onuncu,onbirinci :  integer;
 _Soniki, pSoniki : string;
begin
 if (Length(TCNo) < 11) or (Length(TCNo) > 11 ) then
  begin
     ShowMessage('doğru düzgün gir tc no nu !!');
     Abort
  end
   else
 bir := StrToInt(TCNo[1]);
 iki := StrToInt(TCNo[2]);
 uc  := StrToInt(TCNo[3]);
 dort:= StrToInt(TCNo[4]);
 bes := StrToInt(TCNo[5]);
 alti:= StrToInt(TCNo[6]);
 yedi:= StrToInt(TCNo[7]);
 sekiz:= StrToInt(TCNo[8]);
 dokuz:= StrToInt(TCNo[9]);
 onn  := StrToInt(TCNo[10]);
 onbir:= StrToInt(TCNo[11]);
 
 ilk := (bir+uc+bes+yedi+dokuz) * 7;
 son := iki+dort+alti+sekiz;
 onuncu := (ilk - son) mod 10;
 onbirinci := (bir+uc+bes+yedi+dokuz+iki+dort+alti+sekiz+onuncu);
 onbirinci := onbirinci mod 10;
 
 _Soniki := IntToStr(onuncu) + IntToStr(onbirinci);
 pSoniki := TCNo[10] + TCNo[11];
 
 if _Soniki = pSoniki then
  begin
   Result := True;
  end
   else
    Result := False;
end;