身份证号码合法性检验(python)

合法性校验

在安全测试的过程中经常遇到使用身份证注册,造成信息泄露,或者是造成任意信息注册,就需要构造一些看起来合理的号码,进行测试,为了方便就打算自己写一个校验是否合理。

a=input("输入身份证前17位,最后一位不输入:")
b=[int(a[i]) for i in range(len(a))]
c=7*b[0]+9*b[1]+10*b[2]+5*b[3]+8*b[4]+4*b[5]+2*b[6]+1*b[7]+6*b[8]+3*b[9]+7*b[10]+9*b[11]+10*b[12]+5*b[13]+8*b[14]+4*b[15]+2*b[16]
d=c%11
dict1={0:1,1:0,2:'X',3:9,4:8,5:7,6:6,7:5,8:4,9:3,10:2}
print("合理的身份证号应该是:",a+str(dict1[d]))

为了方便,采用字典的方式进行匹配,减少代码量

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值