前言
发现一个好玩的文章, 文章中通过time模块遍历某一年份的所有日期,再根据身份证前6位和后4位以及id_validator模块来筛选出合法的身份证号。以后社工的时候可能用得到。
代码
import time
from 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 + id3
if validator.is_valid(theid):
print(theid)
vali_dator('身份证前6位','年份','身份证后4位')
用途
利用“身份证前6位”,“年份”,“身份证后4位”来筛选出包含“日期”的完整、合法的身份证号码。再利用姓名和阿里的身份验证接口,可以找到“某人”对应的“身份证号”和“大头贴”
ps:不愿意花钱买阿里接口,也可以使用文章中说的,利用“12306”添加常用联系人的方式,来一个个匹配出“某人”和他的身份证号(12306添加联系人时,如果姓名和身份证号匹配不上会报检验不通过)