根据国家标准GB 11643-1999《公民身份证号码》的要求:
身份证号码由18位组成,前17位为数字,最后一位是校验码,可能为数字或字母X。其中,前6位是地区代码,接下来8位是出生日期,最后3位是顺序号。
具体算法如下:
- 将身份证号码的前17位数字分别乘以不同的系数,系数如下:
7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 - 将上步得到的结果相加,得到和值。
- 将和值对11取模,得到模值。
- 根据模值得到对应的校验码,对应关系如下:
0 1 2 3 4 5 6 7 8 9 10
1 0 X 9 8 7 6 5 4 3 2
因此,身份证校验的Python代码如下: