一个纯手工打造的 中国大陆身份证 号码分析工具(不使用任何网络接口实现更多容易暴露隐私的内容)
C:China(中国)
I:ID(身份证件)
N:number(号码)
A:analyzer(分析器)
运行 main.py
,输入你要查询的身份证件号
程序将返回一串可视化的有关信息,包括以下方面:
该分析器只能查询中国大陆(18位)的身份证号码,港澳台、海外身份证请勿使用;
由于是纯手工打造,不能实现太多功能,因为信息都来自于那 18 位号码,所以别吵闹着说要个查姓名的功能(解决方案:找警察蜀黍,用公安专用查人软件)
Q:我要查的身份证查不到出生地怎么办?
A:①这是因为有些原有的身份证号码所在地的县级行政区划代码有过变化或者原先的发证地已撤并并且行政区代码已撤销,可以上网查。
②数据内容完整,可以在仓库/data/addresses.json 下面评论要求添加。
Q:这东西安全吗?
A:绝对安全,因为能查的只有以下信息:出生地、生日、性别、当天出生序数、效验码(后面两项都是来凑代码行数的),而这些信息都是可以从身份证号表面直接看出来的(这个工具只是方便人查询(行政区代码那么多个我就不信位有人能记下来),核心只是查询出生地),完全不用担心姓名等隐私泄露(除非是警察蜀黍)。
Q:误删数据文件夹或数据文件
addresse.json
怎么办?A:程序内置两个方案,一个是本地模式,另一个是网络模式。网络模式的原理是获取链接:addresses.json 的内容。打开这个链接你会发现内容和原先的数据文件内容是一样的,其实就是一个网络仓库的备份。开发者将其放在了国内访问比较稳定的 Gitee,尽管如此,网络模式还是会本地模式慢一点(除非你家网络对该链接访问速度堪比读取本地文件)。如果你这时连网络都连不上(甚至没有),那么程序将返回一个非专业人员看不懂的错误信息。
Gitee 用户 - MWeiLiu:address: 身份证前六位转地址
在开发这个程序的过程中,核心的开发是比较痛苦的,因为凭一己之力根本无法找齐找全全国那么多行政区编号及其所对应的名称,于是我上网找。
时隔几分钟之久,我便在 Gitee 上找到了一个库,正好是关于身份证前六位(行政区编号)及其相对应的名称的仓库(可以分割线上面的【参与贡献】第二项),但是令我难搞的是:它是.js
文件。
我没管太多,直接把它下载在项目 data 文件夹了,但是调用的时候遇到的问题就棘手了。
我知道 Python 无法直接调用 Javascript 文件,所以我把它改成了 Javascript Object Notation 文件,调试一下调用,出了问题,于是我打开文件,发现前面有个var 变量名=
的 js 赋值内容,但是 json 文件是一个像字典一样的东西,所以我直接把他 delete 了。
第二次尝试调用,发现又是不行(其实在编辑器里打开这个文件就已经发现标了一堆错误,但是我没管,并认为那是对的),一个小时的捣鼓,发现竟然是标点符号问题——这个文件里面的所有键-值对的引号都是单引号,而 json 文件标准是全部得用双引号。这下完了,三千多行的文件,纯手改得改到什么时候!于是:
我开始了一个大胆的想法,用 Python 写个脚本,直接帮我改,这样又快又对。毕竟 Python 的最大作用就是自动化办公嘛。
于是又是一个晚上+一个早上的时间,我学习了相关的知识:
读取文件
读取文件方式(有好几次读取的时候用了w,直接清空了源文件内容,差点没给我气吐血)
字符串替换方法
写入文件
相对路径和绝对路径问题
最终写出了一个才不到十行的脚本,也就是它,帮我在短短1秒不到的时间完成了手动需要好几天(再赔上精神和肉体的折磨)才能完成的工作。
开源(有注释,可以直接套用):https://gitee.com/gkcoll/mydiys/blob/master/json_quota_fix.py
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。