★立即注册★

QQ登录

只需一步,快速开始

就爱江湖-应用库-技术分享资源网-Www.92Jh.Cn

查看: 587|回复: 0

[Python] 身份证号校验位讲解 转载

[复制链接]
发表于 2019-8-22 10:36:02 | 显示全部楼层
有时候网站甲方经常要求对客户输入的身份证号进行确认,不能让客户提供虚假信息。当然校验方式有很多种,最稳妥的是向公安机关查询,但是并不是所有企业都有这样的权限的。
那么,我们可以采用校验位的方式进行大体校验,起码能够限制下随便乱敲的客户。

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


身份证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,再取余,再查表。

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

idnum=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
younum=''
print('请输入前17位数字')
print('12312320190606000')
younum=str(input(''))

num=0
i=0
while i<17:
    num=num+int(younum)*idnum
    i=i+1

end=num%11
endnum=['1','0','X','9','8','7','6','5','4','3','2']
print('最后一位是:'+str(endnum[end]))
print(str(younum[0:17])+str(endnum[end]))
f=open('身份证校验位.txt','w')
f.write('最后一位是:'+str(endnum[end])+'\n'+str(younum[0:17])+str(endnum[end]))
f.close()



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

注:绝大多数网站的身份证校验都是用这种方式,不信可以试试。


敬告:
大家可以想一想,如果知道了你的籍贯,就能推测出你的身份证号的前6位,再知道你的生日,中间8位也有了,知道性别,后三位直接排除了一半,另外顺序码一般都是顺序计数的,即上一个人是男性后三位是001,下一个男性可能就是003。最后校验位可以计算出来。
那你的身份证号被猜解要试多少次呢?所以,在网站注册账户时,请不要提供过于准确和详细的信息


补充一下.6位表示地域+8位生日+2位数字顺序码+1位性别码(单为男,双为女)+1位校验码(不想写程序,不想动笔.可以穷举法到网站验证,也就最多输入11次)

上一篇:力软敏捷开发框架7.0源码(learun7.0)
下一篇:Python 收费、高品质无损音乐下载【开源】

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案,如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请在帖子回复【已解决】。

游客
回复
您需要登录后才可以回帖 登录 | ★立即注册★

免责声明
就爱江湖所发布的一切软件逆向解密分析文章及视频、破解补丁、注册机和注册信息,仅限用于学习和研究目的。不得将上述内容用于商业或者非法途径!否则,一切后果请用户自负!
本站信息来自互联网,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请购买注册正版软件,获得正版优质服务!
如有侵权请邮件或QQ与我们联系处理。

联系QQ:2710763
邮箱:2710763@qq.com

手机版|小黑屋| 就爱江湖资源分享网 |网站地图 |粤公网安备44180302000217号 | 粤ICP备2025451632号

GMT+8, 2025-9-9 18:44

Powered by Discuz!

© 2001-2020 Comsenz Inc.

快速回复 返回顶部 返回列表