前言
发现一个好玩的文章, 文章中通过time模块遍历某一年份的所有日期,再根据身份证前6位和后4位以及id_validator模块来筛选出合法的身份证号。以后社工的时候可能用得到。
代码
import timefrom id_validator import validator#生成出生当年所有日期def dateRange(year):fmt = '%Y-%m-%d'bgn = int(time.mktime(time.strptime(year+'-01-01',fmt)))end = int(time.mktime(time.strptime(year+'-12-31',fmt)))list_date = [time.strftime(fmt,time.localtime(i)) for i in range(bgn,end+1,3600*24)]return [i.replace('-','') for i in list_date]#遍历所有日期,print通过校验的身份证号码def vali_dator(id1,id2,id3):for i in dateRange(id2):theid = id1 + i + id3if validator.is_valid(theid):print(theid)vali_dator('身份证前6位','年份','身份证后4位')
用途
利用“身份证前6位”,“年份”,“身份证后4位”来筛选出包含“日期”的完整、合法的身份证号码。再利用姓名和阿里的身份验证接口,可以找到“某人”对应的“身份证号”和“大头贴”
ps:不愿意花钱买阿里接口,也可以使用文章中说的,利用“12306”添加常用联系人的方式,来一个个匹配出“某人”和他的身份证号(12306添加联系人时,如果姓名和身份证号匹配不上会报检验不通过)
