業余黑客有個潛規則。
政府機關、金融系統、電子商務……這類網站的后臺,是機密重地,通常有高手坐鎮,沒事最好別去溜達。
被網監或者安全專家盯上,十有**落不了好。
而個人網站、小型辦公網絡、學校網站……
這種信息安全不太敏感的,僅僅是瀏覽或下載一些數據,一般不會有什么大問題。
比如從鐵道部官網12306爬點數據,做個輔助訂票系統什么的……
但無論任何地方,肆意破壞總是不被允許的,這是底線。
《原始數據表》的奇怪情況,身份證位數不對,側面支持了這種可能性。
通過黑客手段獲取數據,有時候會遇到一些匪夷所思的問題,比如數據格式特殊,下載的數據寬度受限……
有時候,甚至在后臺數據庫里,只能找到數據的一部分,而其余部分被保存在無法訪問的文件里。
寫后臺程序的人,會基于各種各樣的理由,寫出可讀性極差的代碼。
比如:讀寫效率、數據安全、修補bug、系統健壯……
又或者不想被人繼承代碼,取代自己的位置,甚至單純為了個人興趣、編程風格……
都可能導致這些人,搞出種種令人費解的騷操作。
當然,也可能老高的技術還有缺陷,或者他是從虛擬內存、交換文件里挖掘出來的數據。
也有可能在“作案”過程中被人盯上,不得不提前斷開連接……
總之,擺在江寒面前的,就是這么兩張各有缺陷的表格,外加一個圖片壓縮包。
接下來,江寒首先要做的,是從《原始數據表》里,篩選出需要的記錄,復制到《報名信息表》里。
這一步非常簡單,只要用excel自帶的VBScript編寫一個小腳本,將兩個表格按照姓名匹配,就可以得到每個考生在原始表里的行號。
當然,同名同姓是避免不了的,可能報名信息里一個“張三”,在原始數據里會找到一堆“張三”……這個一會兒再說。
腳本編程非常簡單,江寒只用了二十分鐘,就寫完程序并調試無誤。
按了一下預設的快捷鍵,腳本開始執行。
一邊是3萬多行的考生姓名,一邊是10萬多行的原始數據,腳本足足跑了八分鐘,才得到了一個映射關系表。
接下來,是第二個腳本,參照映射關系表,將原始數據文件篩選出需要保留的行,其他行全都刪除,然后按照《報名信息表》的序號,重新進行排序,得到臨時文件1。
這個臨時文件的行數,要比報名表多出幾千行,這是因為江寒對重名進行了處理,將重名的人都編上了相同的二級序號。
接下來處理重名。
經過一番分析,江寒發現,原始數據表和報名信息表里的數據,排列順序是有規律的。
其以地區為主關鍵字,所在學校為次要關鍵字,而所在班級則是第三關鍵字排序。
也就是說,一個學校里,一個班級的人,都挨在一起,學校、地區之間也沒有混亂。
這樣就好辦了。
由于臨時文件已經按序號排列,重名的人擁有同樣的二級序號,自然就聚攏在了一起。
這時,只要看一下這些人的所在地區和學校,就能輕松分辨出哪些是多余的,那個才是真正對應于《報名信息表》的。
如果一個班級也有同名,就只能具體情況具體分析了,實在確定不了的,就先記下來,放在一邊,以后再說。
一番整理后,臨時文件1已經十分接近高老師希望得到的《報名信息表》。
聯系電話、家庭住址,畢業學校、班級、民族、年齡、出生年月日都有了。
接下來是重頭戲,通過照片判斷每個學生的性別。
幸運的是,雖然《原始數據表》里的身份證號,殘缺不全,導致性別信息不可用,可是《報名信息表》里還有部分殘余的性別數據。
這就給江寒減少了許多負擔。
接下來,先將照片.rar解壓,然后觀察了一下。
三萬多張照片,按學校、班級分類,放入幾千個文件夾中。
每個文件的大小,都在10KB至30KB之間。