合法性校验
在安全测试的过程中经常遇到使用身份证注册,造成信息泄露,或者是造成任意信息注册,就需要构造一些看起来合理的号码,进行测试,为了方便就打算自己写一个校验是否合理。
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]))
为了方便,采用字典的方式进行匹配,减少代码量