原文:http://www.icloudyin.com/?p=66
18位身份证号码组成:ddddddyyyymmddxxsp
共18位,其中:其他部分都和15位的相同。年份代码由原来的2位升级到4位。最后一位为校验位。
校验规则:
十七位数字本体码加权求和公式
1
2
3
4S = Sum(Ai * Wi), i = 0, … , 16 ,先对前17位数字的权求和
Ai:表示第i位置上的身份证号码数字值
Wi:表示第i位置上的加权因子
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2计算模
1
Y = mod(S, 11)
通过模得到对应的校验码
1
2Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
java
1 | static String getCheckCode(String idCard){ |
python
1 | def check_identity_card(card): |
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章