006 身份證驗證碼合法校驗

2021-08-22 11:32:42 字數 853 閱讀 9008

def readidfile():#此函式用於將身份證的前17位和第18位校驗位區分開

fp = open("e:\\04.automationproject\\practicepython\\idverify.txt")

idlines = fp.readlines()

id17col =

id18col =

for id in idlines:

return zip(id17col,id18col)

def getcheckout(idm):#idm表示id的前17位,此函式用於計算身份證的第18位校驗位

'''獲得校驗碼演算法'''

weight=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] #十七位數字本體碼權重

validate=['1','0','x','9','8','7','6','5','4','3','2'] #mod11,對應校驗碼字元值

sum=0

mode=0

for i in range(0,len(idm)):

sum = sum + int(idm[i])*weight[i]

mode=sum%11

return validate[mode]

if __name__ == '__main__':

for id,verify in readidfile():

ver = getcheckout(id)

# print(id,verify)

if ver == verify:

print("身份證合法")

else:

print("身份證合法校驗失敗")

研究身份證驗證碼

終於讓我給整明白了 身份證號最後一位的演算法了 汗啊 第一位 7 第二位 9 第三位 10 第四位 5 第五位 8 第六位 4 第七位 2 第八位 1 第九位 6 第十位 3 第十一位 7 第十二位 9 第十三位 10 第十四位 5 第十五位 8 第十六位 4 第十七位 2 12 如果得數是10 最...

身份證驗證

1 簡單的正規表示式 1 preg match d d dx id card 2 preg match d 18 19 20 d 01 d 0123 d d d x id card 3 preg match d d d x x id card 2 複雜並且嚴格一些的驗證 這個可以驗證15位和18位的...

身份證驗證

身份證分為兩類 1 全是數字 15位或者18位。2 大寫x 18位,最後一位字母x,其餘必需是數字。正則 d d d d x 身份驗證例項 header content type text html charset utf 8 idc post idc bm substr idc,0,6 gende...