• 1.摘要
  • 2.基本信息
  • 3.依据
  • 4.计算方法
  • 5.计算公式
  • 5.1.Excel算法
  • 5.2.Python运用计算模型的计算代码
  • 6.计算模型
  • 7.参考资料

身份证校验码

身份证号码中的校验码是身份证号码的最后一位,是根据GB 11643-1999中有关公民身份号码的规定,根据精密的计算公式计算出来的,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码。

基本信息

  • 中文名

    身份证校验码

  • 概念

    身份证号码的最后一位

  • 根据

    GB 11643-1999

  • 最后一位

    数字校验码

依据

身份证最后一位是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。

计算方法

1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;

2、将这17位数字和系数相乘的结果相加;

3、用加出来和除以11,看余数是多少;

4、余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2;

5、通过上面得知如果余数是2,余数所对应的最后一位身份证号是X,就会在身份证的第18位数字上出现罗马数字的X。

例如:某男性的身份证号码是34052419800101001X。我们要看看这个身份证是不是合法的身份证。

首先:我们计算3*7+4*9+0*10+5*5+...+1*2,前17位的乘积和是189

然后:用189除以11得出的结果是商17余2

最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

也可以按照18位来计算,第一位数的权重是07,第二位是09(见下表)1

序号 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01(从右向左数)

权重 07 09 10 05 08 04 02 01 06 03 07 09 10 05 08 04 02 01

号码03 04 00 05 02 04 01 09 08 00 00 01 00 01 00 00 01 0X

如果第18位是x,那么就按10计算,

加权求和=21+36+0+25+16+16+2+9+48+0+0+9+0+5+0+0+2+10=199,

其中07*03=21,09*04=36,10*00=0,其余以此类推,