驗證碼

驗證碼

公共全自動程序
驗證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自動區分計算機和人類的圖靈測試)的縮寫,是一種區分用戶是計算機和人的公共全自動程序。可以防止:惡意破解密碼、刷票、論壇灌水,有效防止某個黑客對某一個特定注冊用戶用特定程序暴力破解方式進行不斷的登陸嘗試,實際上是用驗證碼是現在很多網站通行的方式(比如招商銀行的網上個人銀行,百度社區),我們利用比較簡易的方式實現了這個功能。這個問題可以由計算機生成并評判,但是必須隻有人類才能解答。由于計算機無法解答CAPTCHA的問題,所以回答出問題的用戶就可以被認為是人類。[1]
    中文名:驗證碼 外文名: 别名: 英文名:Completely Automated Public Turing test to tell Co 屬性:程序

簡介

驗證碼這個詞最早是在2002年由卡内基梅隆大學的路易斯·馮·安、Manuel Blum、Nicholas J.Hopper以及IBM的John Langford所提出。卡内基梅隆大學曾試圖申請此詞使其成為注冊商标,但該申請于2008年4月21日被拒絕。一種常用的CAPTCHA測試是讓用戶輸入一個扭曲變形的圖片上所顯示的文字或數字,扭曲變形是為了避免被光學字符識别(OCR, Optical Character Recognition)之類的電腦程序自動辨識出圖片上的文數字而失去效果。由于這個測試是由計算機來考人類,而不是标準圖靈測試中那樣由人類來考計算機,人們有時稱CAPTCHA是一種反向圖靈測試。n為了無法看到圖像的身心障礙者,替代的方法是改用語音讀出文數字,為了防止語音辨識分析聲音,聲音的内容會有雜音。

發展曆史

驗證碼的英文叫“CAPTCHA”,這是一個炫酷詞組的縮寫——“Completely Automated Public Turing test to tell Computers and Humans Apart”,直譯就是“用于區分計算機與人類的全自動公開圖靈測試”。圖靈測試大家都比較熟悉,是由圖靈提出的一個著名試驗,實驗者通過詢問一台機器與一個人類一系列問題,如果實驗者無法分辨兩者的區别,那麼這台機器便通過的圖靈測試。n驗證碼是圖靈測試的反向簡化版本,不是由人來判斷對方是不是機器,而是由機器來判讀對方是不是人。在互聯網的早年間,各個網站都是沒有驗證碼的,最多有一些黑客出于躲避敏感詞檢測的目的,故意把單詞用很怪的方式打出來。就像把XXX打成“氵工氵尺民”這樣。到了21世紀初,随着垃圾郵件和欺詐軟件的盛行,開始有公司利用驗證碼的思想來保護自己的網站。比如2001年PayPal就曾讓人類輸入類似驗證碼的扭曲字母。n驗證碼這個名詞真正被發明出來是在2003年,這比很多概念晚多了,比如神經網絡70年代就已經有很多人在研究。卡内基梅隆大學的Luis von Ahn,ManuelBlum,NicholasJ.Hopper等人首次提出了“CAPTCHA”這個詞。他們對驗證碼系統做的很深刻的研究,并且将其付諸程序化。自此大量的驗證碼開始被應用到網站中,有效的阻止了黃牛軟件的肆虐。時至今日,每天有過億的驗證碼被人們不斷地輸入着。

概述

驗證碼的英文CAPTCHA 這個詞最早是在2000年由卡内基梅隆大學的Luis von Ahn、Manuel Blum、Nicholas J.Hopper以及IBM的John Langford所提出。CAPTCHA 是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自動區分計算機和人類的圖靈測試)的縮寫,是一種區分用戶是計算機和人的公共全自動程序。這個問題可以由計算機生成并評判,但是必須隻有人類才能解答。由于計算機無法解答CAPTCHA的問題,所以回答出問題的用戶就可以被認為是人類。

作用

   驗證碼的作用: 有效防止某個黑客對某一個特定注冊用戶用特定程序暴力破解方式進行不斷的登陸嘗試,實際上是用驗證碼是現在很多網站通行的方式(比如招商銀行的網上個人銀行,騰訊的QQ社區),我們利用比較簡易的方式實現了這個功能。雖然登陸麻煩一點,但是對網友的密碼安全還來說這個功能還是很有必要,也很重要。驗證碼主要是運用于登錄,注冊,評論發帖等網站模塊。

 (1)登錄模塊:防止惡意程序采用暴力破解的方式進行不斷的登錄嘗試,來破解用戶的密碼。

(2)注冊模塊:防止惡意程序進行大量的注冊,占用網站服務器資源,發布垃圾消息導緻網站崩潰。

(3)評論發帖模塊:防止垃圾帖,廣告貼刷屏,使論壇,博客等網站沒有辦法運行。

(4)其他:一些投票活動,搶購商品,搶票等地方也會使用到驗證碼,用來阻止刷票。

類别

1.傳統的字符驗證碼,通過在圖片上随機産生數字或者是英文字母或者是漢字,一般有四位或者六位驗證碼字符。通過添加幹擾線,添加噪點以及增加字符的粘連程度和旋轉角度來增加機器識别的難度。但是這種傳統的驗證碼随着OCR技術的發展,能夠輕易的被破解。

2.圖片驗證碼,圖片驗證碼也隻是換湯不換藥,應用了相同的技術,隻是不是随機的字符而是讓人識别圖片,比如12306的驗證碼。同時還包括一些将廣告嵌入到圖片上面的驗證碼,都應該歸屬到這一類。

3.極驗驗證碼,是極驗驗證于2012年推出的新型驗證碼,基于行為式驗證技術,拖動滑塊完成拼圖的形式實現驗證,是目前看到的比較有創意的驗證碼,安全性具有新的突破。

4.手機驗證碼,通過短信的形式發送到用戶手機上面的驗證碼,一般為6位的數字,這個我想大家應該很熟悉。

5.語音驗證碼,也屬于手機端驗證的一種方式。

其他信息

 (1).驗證碼一般是防止批量注冊的,人眼看起來都費勁,何況是機器。二像百度貼吧未登錄發貼要輸入驗證碼大概是防止大規模匿名回帖的發生。目前,不少網站為了防止用戶利用機器人自動注冊、登錄、灌水,都采用了驗證碼技術。所謂驗證碼,就是将一串随機産生的數字或符号,生成一幅圖片, 圖片裡加上一些幹擾,例如随機畫數條直線,畫一些點(防止OCR),由用戶肉眼識别其中的驗證碼信息,輸入表單提交網站驗證,驗證成功後才能使用某項功能。

(2)一般注冊用戶ID的地方以及各大論壇都要輸入驗證碼

(3)常見的驗證碼

1,四位數字和字母,可能都是字母,也可能都是數字,随機的4位字符串,最原始的驗證碼,驗證作用幾乎為零。2,CSDN網站用戶登錄用的是GIF格式,目前常用的随機數字圖片驗證碼。圖片上的字符比較中規中矩,驗證作用比上一個好。沒有基本圖形圖像學知識的人,不可破!可惜讀取它的程序,在CSDN使用它的第一天,好像就在論壇裡發布了,真是可憐!

2,漢字是注冊目前最新的驗證碼,随機生成,打起來更難了!例如QQ申訴頁面。

3,MS的hotmail申請時候的是BMP格式, 随機數字+随機大寫英文字母+随機幹擾像素+随機位置。

4,韓文或日文,現在跑跑HF上MS注冊都要打韓文的,這更增加了難度,要去修學下才行。

5,Google的Gmail注冊時候的是JPG格式,随機英文字母+随機顔色+随機位置+随機長度

6,其他各大論壇的是XBM格式,内容随機。

7,廣告驗證碼:輸入廣告中的部分内容即可,特點是可以給網站帶來額外收入,也可以使使用者耳目一新。

8,問題驗證碼:問題驗證碼主要是以問答式的形式來進行填寫。

它的查看比加模驗證碼更容易辨别和錄入,系統可以生成諸如“1+2=?”的問題讓用戶進行回答,當然這樣的問題是随機生成的。

另一種問題驗證碼,則是文字式的問題驗證碼,諸如生成問題“中國的全稱是什麼?”,當然有些網站還在問題後面給出了提示答案或直接答案。

驗證碼還有什麼作用?

您肯定上過論壇吧?幾乎所有正規的論壇都要求注冊時輸入驗證碼,這是為了防止亂發垃圾廣告的家夥用注冊機來惡意注冊。這個源自美國卡内基-梅隆大學的發明被稱為CAPTCHA(用于區分人類與電腦的全自動圖靈測試),因為注冊者需要辨識圖片上七歪八扭的文字,而這項工作隻有真正的人類才能完成。

要知道,全世界的網絡用戶數以億計,對個人來說,辨認文字所花的幾秒時間微不足道,但如果将所有網民的力量利用起來,那便能完成難以想象的浩大工程,而這正是美國賓夕法尼亞州匹茲堡市的CMU研究小組正在做的事。

該小組受一家名為“互聯網檔案館”的非營利組織委托,要将海量的古老書籍和手稿通過OCR(光學字符識别)軟件轉化為電子文本,以方便電腦儲存和查詢。然而,由于原稿的質量太差,可憐的電腦每掃描十個單詞就會錯讀一個,唯一解決的辦法就是人工核對,而這樣的工作顯然不是一個人或一個小組可以勝任的。

于是,CMU設計了一個名叫reCAPTCHA的強大系統,讓他們的電腦去向人類求助。具體做法是:将OCR軟件無法識别的文字掃描圖傳給世界各大網站,用以替換原來的驗證碼圖片;那些網站的用戶在正确識别出這些文字之後,其答案便會被傳回CMU。

為了提高用戶辨識文字的正确率,他們往往被要求辨認兩個單詞,其中一個的答案已經知曉。這樣以來,正确辨認出有答案的那個單詞的用戶,很有可能也會正确辨認另一個單詞。有時候,CMU也會将一個未經辨認的單詞提交給不同的用戶,如果得到的是相同的答案,那這個答案便可以肯定是正确的。

由于許多人氣極高的網站,如Facebook、Twitter和StumbleUpon等,都采用了reCAPTCHA,CMU現在每天都可以處理大約一百萬個單詞。不過,按照現在的速度,要電子化“互聯網檔案館”提供的所有文本,估計還需要400年。

相關制作

 首先生成4位字符串,寫入圖片控件中,然後畫10條左右的直線(位置随機),再畫70個左右的點(位置随機),這樣就做好了,有些論壇驗證碼還會有顔色。

驗證碼-讓一億人做一件事

根據北京教育頻道播出内容,驗證碼的發明者想到了,讓一億人做一件事,那是瘋狂的,無論做什麼事。

Luis von Ahn想到,幾十年前的書上的内容讓電腦識别會有很多錯誤,因為書的褪色,褶皺、損壞等等,Luis von Ahn把書裡電腦無法識别的内容讓計算機自動生成驗證碼,然後發往各大網站,讓網民識别,實際上,我們每次輸入一個驗證碼就可能是在幫Luis von Ahn做事。但是有一個新的問題,既然計算機無法識别這些内容,那計算機如何知道網友輸入的字符是否正确呢 ?Luis von Ahn又有新的解決辦法,讓計算機生成一個和書上的字符類似的驗證碼,即二次碼,以解決計算機無法識别的問題。

相關詞條

相關搜索

其它詞條