首先,我们来了解一下身份证的结构
身份证18位分别代表的含义,身份证15位升级到18位,原来年用2位且没有最后一位,从左到右方分别表示
①1-2 升级行政区代码
②3-4 地级行政区划分代码
③5-6 县区行政区分代码
④7-10 11-12 13-14 出生年、月、日
⑤15-17 顺序码,同一地区同年、同月、同日出生人的编号,奇数是男性,偶数是女性
⑥18 校验码,如果是0-9则用0-9表示,如果是10则用X(罗马数字10)表示
①~④的校验规则网上已经有很多了,在这里我们就不细说了,我们这次重点来看看校验位(末位)是怎么来的。
校验位算法
算法采用ISO 7064:1983,MOD11-2校验码系统
身份证的每一位的具体算法模型,可以根据此表进行计算
实现(上代码,你懂的)
PHP代码:
JAVA代码:
Python代码:
待补充,先做正事......
好了,说了这么多,是时候做正事了,上图!