專利名稱::圖片驗證碼的實現(xiàn)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種在網(wǎng)絡(luò)中用于防止頁面被惡意程序攻擊的圖片驗證碼實現(xiàn)方法。
背景技術(shù):
:目前,在網(wǎng)絡(luò)瀏覽器界面中多采用數(shù)字或數(shù)字加圖片背景的形式作為用戶注冊輸入驗證碼,保證網(wǎng)頁中注冊信息及信息的安全性。在輸入用戶名及靜態(tài)密碼后,會增加一個隨機的認證碼,此密碼多數(shù)情況是采用數(shù)字、字母或數(shù)字與字母的結(jié)合等認證碼方式。用戶通過肉眼識別其中驗證碼信息,輸入表單提交網(wǎng)站驗證,驗證成功后才能正確登錄使用。當(dāng)前使用比較流行的是生成4個隨機數(shù)字和雜亂背景的圖片(即增加一定的干擾像素),數(shù)字和背景顏色在每一次輸入請求時隨機變化?,F(xiàn)有的數(shù)字認證碼形式比較單一,不能完全適應(yīng)網(wǎng)絡(luò)的發(fā)展,特別是保證防止網(wǎng)絡(luò)中網(wǎng)頁串改及惡意注冊的需要。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是提供一種圖片驗證碼實現(xiàn)方法,它可以防止頁面被惡意程序攻擊并進行惡意注冊,增強密碼破解的難度,增強安全認證的可靠性。為解決上述技術(shù)問題,本發(fā)明圖片驗證碼實現(xiàn)方法,在用戶每一次請求的時候,系統(tǒng)從已經(jīng)存在的大量圖片列表中隨機取出N(N≥4)張不重復(fù)的圖片,把N張圖片的序號和名稱放入用戶會話中,并將圖片有效像素的分布保存在一個二維矩陣中,組合成為一張圖片作為驗證圖片顯示在對話框中,以便用戶驗證使用;從N張已經(jīng)存在的圖片中隨機選取一張圖片作為驗證圖片中用戶選擇的圖片,并把該圖片的名稱和序號保存在用戶會話中;用戶在使用曾選擇的圖片作為圖片驗證碼進行驗證過程中,如果從頁面中顯示的N張圖片選中圖片驗證碼,則驗證通過,如果點擊錯誤,則對話窗口出現(xiàn)輸入驗證碼錯誤的信息提示。由于采用本發(fā)明的方法,采用圖片形式作為認證碼輸入的形式,通過大量的圖片,類似的顏色,隨機的位置和圖片來加強被破解的難度。這樣既克服了數(shù)字認證碼形式比較單一的不足,又有利于保證防止網(wǎng)頁被惡意程序攻擊等。采用0~9這10個數(shù)字組合成的驗證碼,網(wǎng)頁設(shè)計中的普通腳本即可讀到字符串形式的數(shù)字。本發(fā)明提出的圖片驗證碼的形式,其安全性非常高,如果惡意攻擊者想按照以前數(shù)字驗證的模式進行破解,必須要解決“如何提取圖片中的驗證“這一問題。本發(fā)明有效地利用了圖片驗證中的復(fù)雜及防破解難度大這一特點,保證了例如網(wǎng)絡(luò)注冊等惡意攻擊上的安全性。具體實施例方式本發(fā)明圖片驗證碼實現(xiàn)方法,是一種使用N(N≥4)張隨機圖片進行認證的密碼認證方法。首先,在系統(tǒng)圖片庫中放置大量的圖片,用戶點擊輸入驗證碼的窗口時,由系統(tǒng)在一個96*96像素的范圍內(nèi)為每張圖片隨機尋找N個不同的位置,作為N張圖片的顯示位置,并把這N個位置的坐標保存在用戶會話中。然后按照圖片的序號和位置把N張圖片生成一張圖片。通過一個web頁面把該圖片顯示到用戶的瀏覽器中。同時把用戶要選擇的圖片名稱也顯示到用戶瀏覽器中。在用戶每一次請求的時候,從N張已經(jīng)存在的圖片中隨機取一張圖片作為驗證圖片中用戶選擇的圖片(即圖片驗證碼),并把該圖片驗證碼的名稱和序號保存在用戶會話中。生成的圖片驗證碼作為頁面中Form(表單)的提交按鈕,用戶按照頁面的提示點擊驗證碼圖片上的相應(yīng)圖片。然后頁面提交到服務(wù)器,在服務(wù)器端獲取用戶點擊圖片的坐標。根據(jù)所述的生成圖片的位置,把從客戶端獲取的用戶點擊的位置換算成每個圖片的坐標體系,然后遍歷保存在用戶會話中的每個圖片的二維矩陣。如果該坐標落在系統(tǒng)制定要選擇的圖片有效像素的范圍內(nèi),并且該坐標上沒有圖片重疊的話,就認為用戶選擇正確;如果該坐標上有圖片重疊,則顯示在最外層,也就是圖片序號最大的圖片是系統(tǒng)指定用戶要選擇的圖片,也認為用戶選擇是正確的;否則認為用戶選擇是錯誤的。驗證完成后,把用戶該次的會話信息清除。生成的驗證圖片是帶有Alpha通道(設(shè)置數(shù)字圖像透明度)的PNG(PortableNetworkGraphics一種圖像格式)矢量透明圖片。在進行圖片透底處理的時候不會留下黑邊,圖片大小為48*48像素。作為驗證碼的圖片采用顏色接近,甚至是相同的大量的圖片,能有效限制程序破解者通過顏色來破譯認證程序,同時N幅圖片的放置是重疊的,重疊的程度是隨機的,使得破解者無法得到一個完整的圖片輪廓,增強了防破解的難度。本發(fā)明的圖片驗證碼與目前使用的數(shù)字及符號驗證碼比較,其輸入方式采用直接點擊選擇,不需要輸入文字或符號信息,簡捷、實用,防破解功能強,適用于各種需要認證碼的環(huán)境。權(quán)利要求1.一種圖片驗證碼實現(xiàn)方法,其特征在于在用戶每一次請求的時候,系統(tǒng)從已經(jīng)存在的大量圖片列表中隨機取出N張不重復(fù)的圖片,其中,N≥4;把N張圖片的序號和名稱放入用戶會話中,并將圖片有效像素的分布保存在一個二維矩陣中,組合成為一張圖片作為驗證圖片顯示在對話框中,以便用戶驗證使用;從N張已經(jīng)存在的圖片中隨機選取一張圖片作為驗證圖片中用戶選擇的圖片,并把該圖片的名稱和序號保存在用戶會話中;用戶在使用曾選擇的圖片作為圖片驗證碼進行驗證過程中,如果從頁面中顯示的N張圖片選中圖片驗證碼,則驗證通過,如果點擊錯誤,則對話窗口出現(xiàn)輸入驗證碼錯誤的信息提示。2.根據(jù)權(quán)利要求1所述的圖片驗證碼實現(xiàn)方法,其特征在于所述將隨機取出的N張圖片組合成為一張圖片的方法是,首先,在系統(tǒng)圖片庫中放置大量的圖片,用戶點擊輸入驗證碼的窗口時,由系統(tǒng)在一個96*96像素的范圍內(nèi)為每張圖片隨機尋找N個不同的位置,作為N張圖片的顯示位置,并把這N個位置的坐標保存在用戶會話中;然后,按照圖片的序號和位置把N張圖片合成一張圖片。3.根據(jù)權(quán)利要求1或2所述的圖片驗證碼實現(xiàn)方法,其特征在于所述由N張圖片生成的一張圖片,通過一個web頁面把該圖片顯示到用戶的瀏覽器中,同時把用戶要選擇的圖片名稱也顯示到用戶瀏覽器中。4.根據(jù)權(quán)利要求1或2所述的圖片驗證碼實現(xiàn)方法,其特征在于使用圖片驗證碼進行驗證過程是生成的圖片驗證碼作為頁面中Form的提交按鈕,用戶按照頁面的提示點擊驗證碼圖片上的相應(yīng)圖片;然后頁面提交到服務(wù)器,在服務(wù)器端獲取用戶點擊圖片的坐標;根據(jù)生成圖片的位置,把從客戶端獲取的用戶點擊的位置換算成每個圖片的坐標體系,然后遍歷保存在用戶會話中的每個圖片的二維矩陣;如果該坐標落在系統(tǒng)制定要選擇的圖片有效像素的范圍內(nèi),并且該坐標上沒有圖片重疊的話,就認為用戶選擇正確;如果該坐標上有圖片重疊,則顯示在最外層,也就是圖片序號最大的圖片是系統(tǒng)指定用戶要選擇的圖片,也認為用戶選擇是正確的;否則認為用戶選擇是錯誤的;驗證完成后,把用戶該次的會話信息清除。5.根據(jù)權(quán)利要求1或2所述的圖片驗證碼實現(xiàn)方法,其特征在于生成的驗證圖片是帶有Alpha通道的PNG矢量透明圖片,圖片大小為48*48像素。6.根據(jù)權(quán)利要求1或2所述的圖片驗證碼實現(xiàn)方法,其特征在于生成的驗證圖片采用顏色接近或相同的大量的圖片,同時N幅圖片的放置是重疊的,重疊的程度是隨機的。全文摘要本發(fā)明公開了一種在網(wǎng)絡(luò)中用于防止頁面被惡意程序攻擊的圖片驗證碼實現(xiàn)方法,采用圖片形式作為認證碼,系統(tǒng)從已經(jīng)存在的大量圖片列表中隨機取出N(N≥4)張不重復(fù)的圖片,并將圖片有效像素的分布保存在一個二維矩陣中,組合成為一張圖片作為驗證圖片顯示在對話框中;從N張已經(jīng)存在的圖片中隨機選取一張圖片作為驗證圖片中用戶選擇的圖片;用戶在使用圖片驗證碼進行驗證過程中,如果從頁面中顯示的N張圖片選中圖片驗證碼,則驗證通過,如果點擊錯誤,則對話窗口出現(xiàn)輸入驗證碼錯誤的信息提示。本發(fā)明可以防止網(wǎng)絡(luò)中瀏覽頁面被惡意程序攻擊,可以防止人為的惡意注冊,增強網(wǎng)絡(luò)信息的安全性。文檔編號H04L9/32GK1980126SQ20051011130公開日2007年6月13日申請日期2005年12月8日優(yōu)先權(quán)日2005年12月8日發(fā)明者梁中華申請人:上海盛大網(wǎng)絡(luò)發(fā)展有限公司