用python制作全國身份證號驗證及查詢系統


前言

本系統可以實現身份證號真偽驗證,年齡、性別及發證地查詢,看起來是不是很高大上,其實做起來不是很復雜,涉及知識主要有python字符串處理、表格讀寫和Gui制作,適合有一定python基礎的朋友練手

作者:小dull鳥

來源:https://mp.weixin.qq.com/s?__biz=MzUyOTAwMzI4NA==&mid=2247488296&idx=2&sn=249b31b2fcc94ce5f73714df268fa45c&utm_source=tuicool&utm_medium=referral

實現效果圖:

 

 第一步:身份證號解析

 

身份證號一般由18位號碼組成,前6位為地址碼,第7至14位為出生日期碼,第15至17位為順序碼,第18位為校驗碼。6位地址碼為編碼對象戶口所在縣(市、區)的行政區划代碼;8位出生日期碼為出生年月日;3位順序碼為縣(市、區)所轄派出所的分配碼,順序碼的奇數分配給男性,偶數分配給女性;1位校驗碼是按統一公式計算出來的。

第二步:歸類整理地址碼與區縣對應關系

這個網上比較常見,隨便搜索1個身份證號都會返回所在的區縣地址,我們要做的是把所有的對應關系都找到,恰巧網上已經有現成的了,不過要稍加整理,大家可以去網上找一下,但是要擦亮眼睛啊,有一個版本是錯的,實在找不到的可以聯系我,我已經整理好存入表格中

 

 第三步:驗證身份證號真偽

身份證最后一位校驗碼算法如下:
①將身份證號碼前17位數分別乘以不同的系數,從第1位到第17位的系數分別為:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
②將得到的17個乘積相加。
③將相加后的和除以11並得到余數。
④余數可能為0 1 2 3 4 5 6 7 8 9 10這些個數字,其對應的身份證最后一位校驗碼為1 0 X 9 8 7 6 5 4 3 2。
代碼實現如下:

 

 第四步:查詢地區

規則參考第一步,python兩行代碼就搞定了

 

 不得不說,python就是簡單方便

第五步:計算出年齡及性別

規則同樣參考第一步,代碼如下:

 

 到此為止,項目的主體功能已經實現,下面要想辦法用GUI界面實現。

第六步:制作GUI界面

本步驟主要用PyQt5實現,下面我把核心代碼貼出來:首先是以網格方式對標簽及文本框進行布局,並用setStyleSheet對文本框進行修飾

 

 然后是設置查詢按鈕並布局,再與check函數(信號)綁定

 

 接着是在check函數中將查詢到的結果在文本框中顯示出來

 

 最后設置主窗口圖片背景

 

到此為止,本項目就大功告成了,你學會了嗎?


但是要聲明一下,本文所介紹的查詢功能均為正向查詢,即在已知身份證號的前提下,解析原則來源於網絡,不敢保證100%准確,更不能反向推算出個人身份證號,所以不涉及侵犯隱私問題。

本文所涉及的代碼、表格已經上傳,如果需要本文的實現代碼 點擊鏈接即可領取:http://note.youdao.com/noteshare?id=1092b4adc352b5745522e5fa6c778e47

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM