也許你曾被網(wǎng)絡(luò)上一些奇葩的驗證碼折磨過,但無論如何,它們存在的目的是為了保護多數(shù)人的利益,維護正常的網(wǎng)絡(luò)環(huán)境。
那么,究竟是誰發(fā)明了這些“惱人”的驗證碼?
一開始,網(wǎng)絡(luò)上是沒有驗證碼的。那時想要在論壇上發(fā)帖,只需輕輕敲一下回車鍵。這也給當時的網(wǎng)絡(luò)黑客可乘之機,他們編寫了一種能大量重復編輯信息的程序,偽裝成人類用戶,肆無忌憚地向網(wǎng)絡(luò)傾倒無意義的“僵尸”信息,導致很多網(wǎng)站不能正常運營。
此外,還有數(shù)不盡的程序機器人惡意破解密碼或刷票,從中獲取非法利益。它們在網(wǎng)絡(luò)世界橫行霸道,使網(wǎng)絡(luò)環(huán)境一片狼藉,眼看就要失控了。
其中受影響最大的當屬電子郵件的提供商。他們的用戶每天要接受數(shù)以百計的垃圾郵件的轟炸,嚴重地影響了正常的工作。當時最有實力的郵件提供商雅虎公司決定解決這個問題。很快,雅虎公司的負責人聯(lián)系到當時卡內(nèi)基梅隆大學一位名叫路易斯·馮·安的學生。
路易斯發(fā)現(xiàn),人類可以用肉眼輕易地識別圖片里的文字信息,而機器不能。當時的計算機辨識技術(shù)還很落后,無法辨識那些鑲嵌在圖片中的、被扭曲、污染過的文字,而人類只需稍稍皺眉就可以識別。
路易斯在導師布魯姆的幫助下很快設(shè)計了一個程序,它先生成一個隨機的字符串,比如smwm,然后對這串字符進行隨機的扭曲、重疊、污染,再顯示給要進行操作的用戶。只要能識別這個變形了的字符串的,就是人類。
路易斯·馮·安
這個字符串經(jīng)歷過扭曲、右側(cè)加光調(diào)色的處理
這個設(shè)計方案后來被命名為CAPTCHA(Completely Automated Public Turingtesttotell Computersand Humans Apart),意思是“全自動區(qū)分計算機和人類的圖靈測試”。它的中文譯名就是大家熟知的“驗證碼”。
發(fā)明了驗證碼的路易斯在享受了掌聲和鮮花后冷靜下來,為一件“小事”耿耿于懷:全世界的網(wǎng)民每天要輸入驗證碼近2億次,假設(shè)每次耗時10秒,那么每天大約要花費50萬小時。如果能把這些時間利用起來,那將會產(chǎn)生多大的效益!
路易斯將目光投向了舊書攤。信息時代來臨之際,很多舊書籍、報紙需要整理成電子版,但電腦掃描辨識時常常出錯,因為這些舊資料常常不可避免地存在字跡模糊、褪色、污損的情況。唯一的方法是人工核對,但這顯然不是一個人或一個公司可以勝任的。為什么不讓網(wǎng)民幫忙?
路易斯掃描了一些過期的舊報紙,將掃描得到的圖片在計算機的分析下拆開成單詞片段,再將這些單詞作為驗證碼發(fā)送給用戶。
這里又出現(xiàn)了一個問題:先前的那些驗證碼,系統(tǒng)是知道答案的,但這些從書籍拆下來的單詞,系統(tǒng)自己也搞不清楚答案,如何判斷用戶的結(jié)果是否正確?
路易斯用reCAPTCHA(二次驗證碼)解決了這個問題。二次驗證碼會讓用戶一次性辨識兩個單詞,其中一個是系統(tǒng)生成的真正的驗證碼,另外一個是從舊報紙上截下來的單詞。如果用戶輸對了第一個驗證碼,那么輸對第二個單詞的幾率也很高。
各種各樣的驗證碼
為防止惡意搗亂、提高答案的可信度,路易斯還將同一個未知的單詞輸送給多個用戶,如果所有用戶辨識的結(jié)果一致,那么就認為這個單詞被“搞定”了。
短短幾個月內(nèi),路易斯便讓網(wǎng)民們幫忙完成了《紐約時報》130年來所有舊報紙的電子存檔。(據(jù)新浪科技)