前言

发现一个好玩的文章, 文章中通过time模块遍历某一年份的所有日期,再根据身份证前6位和后4位以及id_validator模块来筛选出合法的身份证号。以后社工的时候可能用得到。

代码

  1. import time
  2. from id_validator import validator
  3. #生成出生当年所有日期
  4. def dateRange(year):
  5. fmt = '%Y-%m-%d'
  6. bgn = int(time.mktime(time.strptime(year+'-01-01',fmt)))
  7. end = int(time.mktime(time.strptime(year+'-12-31',fmt)))
  8. list_date = [time.strftime(fmt,time.localtime(i)) for i in range(bgn,end+1,3600*24)]
  9. return [i.replace('-','') for i in list_date]
  10. #遍历所有日期,print通过校验的身份证号码
  11. def vali_dator(id1,id2,id3):
  12. for i in dateRange(id2):
  13. theid = id1 + i + id3
  14. if validator.is_valid(theid):
  15. print(theid)
  16. vali_dator('身份证前6位','年份','身份证后4位')

用途

利用“身份证前6位”,“年份”,“身份证后4位”来筛选出包含“日期”的完整、合法的身份证号码。再利用姓名和阿里的身份验证接口,可以找到“某人”对应的“身份证号”和“大头贴”
ps:不愿意花钱买阿里接口,也可以使用文章中说的,利用“12306”添加常用联系人的方式,来一个个匹配出“某人”和他的身份证号(12306添加联系人时,如果姓名和身份证号匹配不上会报检验不通过)