• 欢迎访问 追梦人 网站

身份证号校验位讲解

Python dreamren 4个月前 (07-18) 142次浏览 已收录 0个评论 扫描二维码

有时候网站甲方经常要求对客户输入的身份证号进行确认,不能让客户提供虚假信息。当然校验方式有很多种,最稳妥的是向公安机关查询,但是并不是所有企业都有这样的权限的。
那么,我们可以采用校验位的方式进行大体校验,起码能够限制下随便乱敲的客户。

网络上有更成熟的方案,这里只讲解校验位


身份证 18 位分别是这样的意思:
6 位表示地域+8 位生日+3 位数字顺序码+1 位校验码


6 位地域前 2 位表示省,中间两位是市,后两位是县。

其中顺序码末位为奇数,是男性,偶数是女性。

我们可以简单的使用 1 位校验码进行判断,当然也可以再对生日、地域进行校验,此次我只是解决校验位的问题。

校验方式:
1.将前 17 位与对应的每位系数相乘,系数是提前设定好的,每位有自己的系数。
每位系数如下
[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
2.将所有位与系数的乘积加起来。
3.将加和除以 11,取余数。
4.按照余数数值,查表得最后一位。
对应表如下:
[‘1′,’0′,’X’,’9′,’8′,’7′,’6′,’5′,’4′,’3′,’2′]


例如,余数为 0,则最后一位为 1,余数为 2,则最后一位为 X。


进行下手动计算。
例如你的身份证号前 17 位是 12345678901234567
计算方式
1*7+2*9+3*10+4*5+6*8+7*4+8*2+9*1……….
然后除以 11,再取余,再查表。

这是 python3 代码,最后会在代码保存位置存储一个身份证号文本文档,以供核验。

追梦人博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:身份证号校验位讲解
网站部分内容来源网络,如有侵犯您的权益,请联系我们,我们会第一时间处理您的反馈信息,谢谢!!!
喜欢 (0)
[dreamren@foxmail.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址