日韩午夜福利a无码,三级亚洲中文字幕,免费高清av一区二区三区,国产精品白丝祙喷水视频

您現(xiàn)在所在的位置:首頁 >關(guān)于奇酷 > 行業(yè)動(dòng)態(tài) > 用python算出了同事的 “身份證” 號(hào)碼!

用python算出了同事的 “身份證” 號(hào)碼!

來源:奇酷教育 發(fā)表于:

用python算出了同事的 “身份證” 號(hào)碼!

  “
 
  本文人物、身份證均為虛構(gòu),如有雷同,純屬巧合!
 
  01
 
  引子
 
  馬上就是五一了,不管是自己,還是家人,可能馬上就準(zhǔn)備出去旅游了。
 
  好在現(xiàn)在全國都通用 ”刷身份證進(jìn)站“ 了,本文的情況你也許不會(huì)碰到。
 
  但是,對(duì)于你們家里面的長輩,他們更習(xí)慣于取票后,再進(jìn)站。
 
  那么,我覺得你就有必要提醒他們,不要隨意丟了自己的火車票,因?yàn)橛锌赡軙?huì)被不法分子撿到,識(shí)別了身份證后,做一些不好的事情。

 
  02
 
  事情的經(jīng)過是這樣的:
 
  我的同事李大偉最近出差去了。
 
  昨晚睡覺前翻了翻朋友圈,

 
  就跟他愉快地 互懟 交流了起來。
 
  估計(jì)是他想起了我朱小五從不打無把握之賭,后面就慫了。
 
  一杯奶茶嘛,也可以接受,
 
  像杰倫一樣快樂就好啦。
 
  開工。
 
  先看看李大偉的朋友圈中發(fā)的圖片。
 
 ?。ㄔ摶疖嚻眮碜云渌叫惺澜?,掃描可能發(fā)生奇怪現(xiàn)象)
 
  車票中暴露的個(gè)人信息為:
 
  3302211993****4914  李大偉
 
  只缺少月份日期四位。
 
  那么也就是一共365種可能。
 
  科普時(shí)間:

 
  根據(jù)李大偉的身份證信息的前6位“330221”
 
  輕易可得:

 
  浙江省寧波人,1993年滴
 
  那我先用python生成1993年的所有日期吧


 
  import time
 
  #生成出生當(dāng)年所有日期

 
  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]
 
  data_time  = dateRange('1993')
 
  成功得到日期列表。
 
  再用剛才的校驗(yàn)碼計(jì)算規(guī)則
 
  反向驗(yàn)證哪個(gè)日期符合嘍!
 
  自己寫計(jì)算規(guī)則?
 
  NONONO,太麻煩!
 
  給大家隆重介紹一個(gè)庫:id-validator
 
  安裝:pip install id-validator
 
  可以用來驗(yàn)證身份證號(hào)合法性、獲取身份證號(hào)信息、生成可通過校驗(yàn)的假數(shù)據(jù)、身份證升級(jí)。

 
  那么我們利用 id-validator 來依次校驗(yàn)剛才生成的身份證號(hào)碼。

 
  from id_validator import validator
 
  #遍歷所有日期,print通過校驗(yàn)的身份證號(hào)碼
 
  def vali_dator(id1,id2,id3):
 
      for i in dateRange(id2):
 
          theid = id1 + i + id3
 
          if validator.is_valid(theid):
 
              print(theid)
 
  vali_dator('330221','1993','4914')
 
  運(yùn)行結(jié)果:

 
  額
 
  有33個(gè)都符合校驗(yàn)邏輯,這只篩掉了90%啊
 
  這就尷尬了
 
  如何在33個(gè)日期中挑出來李大偉的真實(shí)出生日期呢?
 
  思考了一下
 
 ?。ㄆ鋵?shí)是百度了一波)
 
  這里需要我們每個(gè)人都用過的12306。

 
  打開12306官網(wǎng),
 
  在12306添加常用聯(lián)系人,
 
  將李大偉+身份證號(hào)依次輸入。
 
  若身份證和姓名一致,就會(huì)顯示校驗(yàn)通過;
 
  若不能通過,則說明身份證和姓名不一致。

 
  最終可以測出李大偉的出生日期是:19930608
 
  收工,
 
  奶茶到手。
 
  大家是不是想知道我到底試了多少次才成功的?
 
  剛剛回來的李大偉也表示很想知道。
 
  其實(shí)一次也沒用試。
 
  現(xiàn)在我喝著李大偉買的奶茶
 
  碼著文
 
  打開釘釘
 
  看著李大偉的昵稱

 
  心里笑出豬叫。
 
  本文相關(guān)代碼已上傳github:
 
  https://github.com/zpw1995/aotodata/tree/master/interest/ID_card