銷魂的12306驗證碼

QQ20150317-1

早上好!今天是 3 月 17 日週二。上圖就是 12306 網站更新以後的驗證碼。

這是一張靜態截屏,所以應該解釋一下:在點擊圖片以後,相應圖片纔出現紅底白色的鐵路標識。有不少網友反映,這是他們遇到的最複雜,或者說最“魔性”的驗證碼。當然更變態的驗證碼也不是沒有,但部署到一個爲千萬人回家準備的基礎服務上,這真的好嗎……?

使用第三方手機客戶端和用插件的同學們率先崩潰。因爲他們的界面都變成了這樣:

7f7e7276jw1eq7bwrum22j20bu0hst9a

7084530bjw1eq7gtowrd2j20a00hs3z7

和數字驗證碼相比,圖片驗證碼是一類對人類而言更難的驗證碼。這種“在多種圖片中合併同類項”的查找方法本身沒有問題,但最大的問題在於,其分類標準是由機器學習來確定的,因此總會出現人的判斷和機器分類不符的情況。明明我覺得這張圖對,但機器說不對,這樣會讓人感覺很不舒服。

但是,圖片驗證碼對於機器來說,卻不是一定比數字更困難。因爲機器解讀數字驗證碼,也是把畫有數字的圖片轉換回文本。這種驗證碼的實現方式可以有兩種,一是準備一個龐大的圖庫,由小圖片和關鍵字一一對應,然後點到圖片,後臺其實進行的是文本關鍵字對比;二是根據關鍵字啓動圖片搜索(比如去百度搜索),而點擊的圖片就在搜索結果裏面的話,就算是符合條件。

用一句話概括就是:

幾乎不存在一種由機器生成,人識別快,機器識別慢的東西。

此前,國內著名漏洞檢測平臺烏雲網曾經認爲 12306 數字驗證碼太容易被破解,官方如下回應:

QQ20150317-1

 

結果,一年多以後 12306 還是選擇了“用戶不好認”的驗證碼形式。但這是不是意味着“機器不好認”了呢?新驗證碼發佈不到 24 小時,已經有搶票插件宣佈兼容:

a14108b3jw1eq7ncbnvuyj20hr0vkq56

 

QQ20150317-3

 

而網上也出現了 機器破解的原型方案 。該方案通過百度和谷歌“以圖搜圖”的公用 API,將小圖片轉換成了符合圖意的文本關鍵字。這樣一來,只要檢查關鍵字中有沒有符合問題中字符的就 OK。

QQ20150317-2

 

其實“以圖搜圖”已經是和輸入關鍵字,或者念出語音搜索一樣簡單和普通的搜索手段,並非什麼高科技的方式。所以正如上面說的,圖片驗證碼和加了很多波浪紋干擾的數字驗證碼對機器而言並沒有太大的難度差異。

然而,圖片驗證碼卻增加了人類識別的難度。尤其是想到這樣的公共服務,還要面對很多電腦知識不足的用戶,比如前幾年需要人指點上網訂票的農民工兄弟,這樣在減緩搶票插件效率的同時,不免也讓這些被搶票插件損害利益最多的人望而卻步。

還有人提出,有些關鍵字並非全國通用,比如“火龍果”“生蠔”,可能北方人都不知道是什麼。別笑,我自己前幾天去超市買菜,想做個四喜烤麩,結果發現根本沒“烤麩”這東西,只有長的挺像的“麪筋”賣,而它倆好像區別還挺大的。而且我也很難跟爸媽解釋“豆皮”和“千張”的區別。

一個知乎用戶的 回覆 ,可以說很大程度上代表了我的心聲:

這讓我想起了很久以前高中時候,學校爲了防止少數學生違反紀律,不斷在校規的破解難度上加碼,比如春夏秋冬強制穿校服,請病假必須家長親自來接,出校門看病必須從班主任到教務處逐級簽字。直接結果就是大部分學生的學習生活受到了很大的干擾, 但是對於習慣破壞規則的人來說,他們有充足的時間和精力去尋找破解的方法並以此爲樂,也不怕承擔相應的風險

也許 12306 網站的特殊性導致怎麼驗證都有難處,我覺得另一個同屬於公共服務網站的驗證碼,做得就相當絕妙。看下圖你就知道了:

QQ20150317-4

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章