Delphi获取身份证号码验证码算法
18身份证号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。 (1)十七位数字本体码加权求和公式 (3)根据模,查找得到对应的校验码 function GetIDCardNumCheckCode(aIDCardNum: string): Integer; const WIArray: Array[0..16] of Integer = (7,9,10,5,8,4,2,1,6,3,7,2); ModCode: array [0..10] of string = ('1','0','X','9','8','7','6','5','4','3','2'); var I,Sum,ModResult: Integer; begin Result := -1; Sum := 0; if Length(aIDCardNum) < 17 then Exit; for I := 0 to Length(WIArray) - 1 do begin Sum := Sum + StrToInt(aIDCardNum[I+1]) * WIArray[I]; end; ModResult := Sum mod 11; Result := StrToInt(ModCode[ModResult]); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |