<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 3004字,需瀏覽 7分鐘

           ·

          2021-05-07 20:02

          文中人物、身份證號(hào)碼純屬虛構(gòu),如有雷同,就是抄我的,哈哈!

          問題來源

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


          本文介紹

          事情的經(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



          推薦閱讀:

          入門: 最全的零基礎(chǔ)學(xué)Python的問題  | 零基礎(chǔ)學(xué)了8個(gè)月的Python  | 實(shí)戰(zhàn)項(xiàng)目 |學(xué)Python就是這條捷徑


          干貨:爬取豆瓣短評(píng),電影《后來的我們》 | 38年NBA最佳球員分析 |   從萬眾期待到口碑撲街!唐探3令人失望  | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個(gè)海量小姐姐素描圖 |


          趣味:彈球游戲  | 九宮格  | 漂亮的花 | 兩百行Python《天天酷跑》游戲!


          AI: 會(huì)做詩的機(jī)器人 | 給圖片上色 | 預(yù)測收入 | 碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影


          自動(dòng)化辦公:

          PDF提取圖片和表格 | html一鍵保存pdf Pdf轉(zhuǎn)Word輕松搞定表格和水印! | Pdf轉(zhuǎn)Word



          年度爆款文案


          點(diǎn)閱讀原文,領(lǐng)全套AI資料!

          瀏覽 13
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  网红操逼视频在线观看免费视频在线观看 | 成人a毛片| 99成人视频免费观看 | 翔田千里中文字幕 | 奇米狠狠色777久久久欧美老妇 |