John Stone

1996-04-04

中国 河北

身份证号码组成结构以及验算方法

芦苇小白

Jun 4, 2021 9:17:10 AM 18

作者:净整些没用的
链接:https://www.zhihu.com/question/270299828/answer/858143729
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

身份证号的组成结构:区域码(6位) 出生日期码(8位) 顺序码(2位) 性别码(1位) 校验码(1位)共18位。

  • 区域码 指的是公民常住户口所在县(市、镇、区)的行政划区代码,如110102是北京市-西城区。但港澳台地区居民的身份号码只精确到省级。

  • 出生日期码 表示公民出生的公历年(4位)、月(2位)、日(2位)。

  • 顺序码 表示在同一区域码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号。

  • 性别码 奇数表示男性,偶数表示女性。

  • 最后一位是校验码。

前面的没啥好说的,最主要的是最后这个校验码。最后一位是校验码,这里采用的是ISO 7064:1983,MOD 11-2校验码系统。校验码为一位数,但如果最后采用校验码系统计算的校验码是“10”,碍于身份证号码为18位的规定,则以“X”代替校验码“10”。
可能这个解释你不能看懂,那么我下面手撸一遍计算过程。

校验码计算方式(小学生能看懂版本):
假设一个身份证前17位:33078119850907809
取身份证第1位计算17减0[身份证位数减1]   17-(1-1)=17
计算2的17次方  2^17=131072
计算131072除以11,取余数  131072➗11=11915……7  
下面以 131072%11=7 表示用7乘以3[身份证号第1位数字]  7*3=21
记录下21
这个数字取身份证第2位计算17减1[身份证位数减1]   17-(2-1)=16
计算2的16次方  2^16=65536
计算65536除以11,取余数   65536%11=9
用9乘以3[身份证号第2位数字]  9*3=27
记录下27

这个数字取身份证第3位………………

取身份证第17位计算17减16[身份证位数减1]   17-(17-1)=1
计算2的1次方  2^1=2
计算2除以11,取余数   2%11=2
用2乘以9[身份证号第17位数字]  2*9=18
记录下18
这个数字我们把这17个数字相加最后结果是423
计算最后结果423除以11 取余数  423%11=5
计算12减5  12-5=7
计算7除以11取余数 7%11=7
最后的计算结果只可能是0-10 这11个数字,因为身份证号只有18位  所以如果最后这个校验码是10那么就记为X那么我们得到最后一位的校验码是7
拖动滑块验证
验证通过 验证失败

全部评论