身份证号码在线编辑器 身份证号码在线生成 身份证号在线生成查询


身份证号码在线编辑器 身份证号码在线生成 身份证号在线生成查询

文章插图
?大家好哇 , 又是一个愉快的周末 , 今天本鸟给大家分享1个有趣的实战项目 , 用python制作“全国身份证号验证及查询系统” , 成品界面如下图:
身份证号码在线编辑器 身份证号码在线生成 身份证号在线生成查询

文章插图
本系统可以实现身份证号真伪验证 , 年龄、性别及发证地查询 , 看起来是不是很高大上 , 其实做起来不是很复杂 , 涉及知识主要有python字符串处理、表格读写和Gui制作 , 适合有一定python基础的朋友练手 , 下面一起来看看怎么实现的吧!
第一步:身份证号解析
身份证号码在线编辑器 身份证号码在线生成 身份证号在线生成查询

文章插图
身份证号一般由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%准确 , 更不能反向推算出个人身份证号 , 所以不涉及侵犯隐私问题 。

【身份证号码在线编辑器 身份证号码在线生成 身份证号在线生成查询】本文所涉及的代码、表格已经上传 , 请在公号[python的爬虫与数据分析之路]后台输入“20200329”获取 。