最近12306的驗證碼被網友們吐槽(hei)得一塌糊塗,由此我也對驗證碼這個東西產生了研究熱情。如今的驗證碼有如下幾種:
一、輸入圖片中的字母/數字/文字;
二、短信驗證碼(這個不必定能辨別機器人,主要是驗證手機號碼確實是你的);
三、語音驗證碼,有點擊收聽的,也有打電話過來叫你聽的;
四、像12306(微觸科技技術提供)這種的點擊驗證碼;
五、像淘寶和極驗驗證的這種拖動驗證;html
而後我想到的驗證碼方式跟這些都不同,源自於下面這句網語:
「研表究明,漢字序順並不定一影閱響讀。好比當你看完這句話後,才發這現裏的字全是都亂的。」前端
這種打亂順序的語句對人來講不會有閱讀障礙,但對機器來講這樣亂的語句很是難與詞庫做匹配得出正確的語義理解。下面開始講如何利用(裝逼):spa
一、後臺隨機抽取原語句,隨機打亂詞語及詞語間的順序,一般爲鄰近的字調換和隔一個字調換;.net
二、前端錄音發送到後臺,把語音轉換成文字(有不少第三方平臺能夠作),與原語句進行對比;htm
三、正常人一般能夠絕不費力理所固然地讀出來,但機器很是艱難,現有的詞庫都是正常順序,它須要對亂詞進行重排,那怎麼分詞呢,依據什麼來重排呢;blog
四、能夠利用錯別字互換,好比「競」和「竟」等;圖片
五、能夠間中利用古詩詞這種沒有詞組的語句來加大重組難度,好比「牀前月明光,疑是上地霜」,但也很容易被模糊識別出整一首,慎用;get
六、甚至能夠考慮偶爾使用一些人們熟知的廣告語,獲取廣告盈利,一樣容易識別出整句,慎用。驗證碼
甚至還能夠加上這樣的處理(圖自貼吧)後臺
最後,求大神能夠嘗試作一個DEMO出來,以及分析一下這種驗證碼的破解難度。
詳細分析這種閱讀現象能夠看看這篇文章>>