jQuery外掛實作靜態HTML驗證碼校驗_jquery
jQuery由美國人John Resig創建,它是一個快速、簡潔的JavaScript庫,提供了很多遍歷函數,如each(fn)。 jQuery能夠讓使用者的html頁保持程式碼和html內容分離,也就是說,不用再在html裡面插入一堆js來呼叫指令了,只要定義id即可。正是這些操作上的特點,使用者可以輕鬆處理HTML文件、事件、實現動畫效果,並且方便地為網站提供互動。如今,jQuery已經吸引了來自世界各地的眾多JavaScript高手加入。
這裡所要講到的jQuery Real Person Plugin,就是一個完全由JavaScript編寫而成的jQuery驗證碼插件。
jQuery Real Person Plugin主要實現了字母和字母數字混合兩種驗證方式,可以有效地防止自動提交表單。其外觀展示提供了客製化功能,預設為6位字母,如圖1所示。
依需要,也可以自訂8位元長度的驗證碼,如圖2所示。
或是字母數字混合式的驗證碼,如圖3所示。
此外,使用者也可以對底部的文字進行定制,如圖4所示。
看到這些各具特色且功能強大的驗證介面,我們能否自己也來實現呢?答案是肯定的。下面,透過循序漸進的解說,對jQuery Real Person Plugin的驗證過程進行分析。
第1步,使用這個驗證功能之前,先引入JavaScript、CSS檔案。
<script type="text/JavaScript" src="Scripts/jquery-1.3.2.js"></script> <script type="text/JavaScript" src="Scripts/jquery.realperson.js"></script> <style type="text/css">@import "Styles/jquery.realperson.css";</style>
在上面的程式碼中,第1行引入jQuery類別庫,可以到官方網站載最新jQuery類別庫。第2行引入驗證碼插件類別庫jquery.realperson.js。第3行引入驗證碼樣式檔jquery.realperson.css。網站介面如圖5所示。
第2步,頁面中放入文字方塊元素,也就是HTML部分。
<table> <tr> <td><input type="text" id="txtValidate" name="defaultReal"></td> </tr> <tr> <td><asp:Button ID="btnSubmit" runat="server" Text="登录" /></td> </tr> </table>
在上面的程式碼中,第1行使用兩行一列進行佈局,一行用來存放文字框,一行用來存放登入按鈕。第3行定義id=”txtValidate」的文字框,用於輸入驗證碼。第6行定義id=”btnSubmit」的提交按鈕,用於觸發後台事件,從而登入系統。
步驟3,頁面初始化時,呼叫驗證碼插件,以便於初始化驗證碼顯示。
<script> $(document).ready(function () { $("#txtValidate").realperson({ length: 5 }); } ); </script>
在上面的程式碼中,第2行為頁面載入時所進行的操作,相當於頁面的onLoad事件。第3行呼叫驗證碼控制項的接口,用於顯示驗證碼。
第4步,核心程式碼分析。
/* 核心代码 @param target (jQuery) the input field @param inst (object) the current instance settings @return (string) the additional content */ _generateHTML: function(target, inst) { var text = ''; for (var i = 0; i < inst.settings.length; i++) { text += CHARS.charAt(Math.floor(Math.random() * (inst.settings.includeNumbers ? 36 : 26))); } var html = '<div class="realperson-challenge"><div class="realperson-text">'; for (var i = 0; i < DOTS[0].length; i++) { for (var j = 0; j < text.length; j++) { html += DOTS[CHARS.indexOf(text.charAt(j))][i] + ' '; } html += '\n'; } html += '</div><div class="realperson-regen">' + inst.settings.regenerate + '</div></div><input type="hidden" class="realperson-hash" name="' + inst.settings.hashName.replace(/\{n\}/, target.attr('name')) + '" value="' + this._hash(text) + '">'; return html;
在上面的程式碼中,第7~9行用於產生驗證碼隨機字元。第12~22行用來把背景字元和隨機字元組裝成HTML程式碼,輸出到瀏覽器。
透過上述剖析,可以看到,驗證碼對於密碼安全有著十分重要的作用。聯想到銀行帳戶的安全問題,例如駭客透過其他途徑獲得了銀行帳戶,然後打開其網路銀行的登入介面。使用瀏覽器中查看原始程式碼的方式,分析登入介面HTML程式碼,發現頁面中沒有驗證碼,也沒有其他的安全設置,只使用了HTTP協定;駭客竊喜,於是就可以使用程式來模擬瀏覽器向銀行伺服器提交帳戶和密碼。密碼一般是6位的阿拉伯數字,正確密碼的可能性就是10的6次方,也就是100萬次。駭客會找一台高效能、高頻寬的電腦,運行套取銀行密碼程序,假設這台電腦1秒鐘能測試10個密碼,10萬秒鐘(也就是27小時,一天左右)的時間就可以把所有的密碼運行一遍,實際上駭客用不了那麼長時間就已經竊取到了密碼,銀行帳號的錢也就會被轉走。也就是說,若沒有驗證碼,駭客使用套取銀行密碼程序,在一天左右的時間就能輕易獲得非法收入。
在實際應用中,漢字驗證碼也是比較常見的驗證碼,它的原理是:從一個漢字集合中隨機抽取幾個漢字,生成圖片以HTTP輸出流到頁面。如果用戶端輸入正確的漢字,則可以繼續操作,否則禁制登入。中國上下五千年,文化博大精深,漢字數量達9萬多,相對只有10個位數的數字驗證碼和26個字元的字母驗證碼,漢字驗證碼更具安全性。因此,透過對驗證碼安全的研究,可以更領略到中華文化的博大精深,原來密碼驗證也可以這樣玩!
以上就是本文的全部內容,希望對大家的學習有所幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題











jQuery引用方法詳解:快速上手指南jQuery是一個受歡迎的JavaScript庫,被廣泛用於網站開發中,它簡化了JavaScript編程,並為開發者提供了豐富的功能和特性。本文將詳細介紹jQuery的引用方法,並提供具體的程式碼範例,幫助讀者快速上手。引入jQuery首先,我們需要在HTML檔案中引入jQuery函式庫。可以透過CDN連結的方式引入,也可以下載

jQuery中如何使用PUT請求方式?在jQuery中,發送PUT請求的方法與發送其他類型的請求類似,但需要注意一些細節和參數設定。 PUT請求通常用於更新資源,例如更新資料庫中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請求方式的具體程式碼範例。首先,確保引入了jQuery庫文件,然後可以透過以下方式發送PUT請求:$.ajax({u

jQuery是一款廣泛應用於前端開發的快速、小巧、功能豐富的JavaScript庫。自2006年發布以來,jQuery已成為眾多開發者的首選工具之一,但在實際應用中,它也不乏一些優點和缺點。本文將深度剖析jQuery的優勢與劣勢,並結合具體的程式碼範例進行說明。優點:1.簡潔的語法jQuery的語法設計簡潔明了,可以大幅提升程式碼的可讀性和編寫效率。比如,

jQuery如何移除元素的height屬性?在前端開發中,經常會遇到需要操作元素的高度屬性的需求。有時候,我們可能需要動態改變元素的高度,而有時候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來移除元素的高度屬性,並提供具體的程式碼範例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。 height屬性用於設定元素的高度

標題:jQuery小技巧:快速修改頁面所有a標籤的文字在網頁開發中,我們經常需要對頁面中的元素進行修改和操作。使用jQuery時,有時候需要一次修改頁面中所有a標籤的文字內容,這樣可以節省時間和精力。以下將介紹如何使用jQuery快速修改頁面所有a標籤的文本,同時給出具體的程式碼範例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下程式碼:<

標題:使用jQuery修改所有a標籤的文字內容jQuery是一款受歡迎的JavaScript庫,被廣泛用於處理DOM操作。在網頁開發中,經常會遇到需要修改頁面上連結標籤(a標籤)的文字內容的需求。本文將介紹如何使用jQuery來實現這個目標,並提供具體的程式碼範例。首先,我們需要在頁面中引入jQuery庫。在HTML檔案中加入以下程式碼:

如何判斷jQuery元素是否具有特定屬性?在使用jQuery操作DOM元素時,常會遇到需要判斷元素是否具有某個特定屬性的情況。在這種情況下,我們可以藉助jQuery提供的方法來輕鬆實現這項功能。以下將介紹兩種常用的方法來判斷一個jQuery元素是否具有特定屬性,並附上具體的程式碼範例。方法一:使用attr()方法和typeof運算子//判斷元素是否具有特定屬

jQuery是一種流行的JavaScript庫,被廣泛用於處理網頁中的DOM操作和事件處理。在jQuery中,eq()方法是用來選擇指定索引位置的元素的方法,具體使用方法和應用場景如下。在jQuery中,eq()方法選擇指定索引位置的元素。索引位置從0開始計數,即第一個元素的索引是0,第二個元素的索引是1,依此類推。 eq()方法的語法如下:$("s
