1. 程式人生 > >asp.net使用者註冊的與密碼強度及驗證的相關問題。對上一次詳細敘述。

asp.net使用者註冊的與密碼強度及驗證的相關問題。對上一次詳細敘述。

1.近期學習的使用者註冊是密碼強度問題。

<script type="text/javascript" language="javascript">
        //總:JS判斷密碼強度

        //判斷輸入密碼的型別 測試某個字元是屬於哪一類. 
        function CharMode(iN) {
            if (iN >= 48 && iN <= 57) //數字  
                return 1;
            if (iN >= 65 && iN <= 90) //大寫  
                return 2;
            if (iN >= 97 && iN <= 122) //小寫  
                return 4;
            else
                return 8;
        }
        //bitTotal函式  
        //計算出當前密碼當中一共有多少種模式 與運算
        function bitTotal(num) {
            modes = 0;
            for (i = 0; i < 4; i++) {
                if (num & 1) modes++;
                num >>>= 1;
            }
            return modes;
        }
        //返回強度級別  
        function checkStrong(sPW) {
            if (sPW.length < 5)
                return 0; //密碼太短,不檢測級別
            Modes = 0;
            for (i = 0; i < sPW.length; i++) {
                //密碼模式  測試每一個字元的類別並統計一共有多少種模式. 與或運算.
                Modes |= CharMode(sPW.charCodeAt(i));
            }
            return bitTotal(Modes);
        }
        //1.如果密碼少於5位,那麼就認為這是一個弱密碼;
        //2.如果密碼只由數字、小寫字母、大寫字母或其它特殊符號當中的一種組成,則認為這是一個弱密碼.
        //3.如果密碼由數字、小寫字母、大寫字母或其它特殊符號當中的兩種組成,則認為這是一箇中度安全的密碼.
        //4.如果密碼由數字、小寫字母、大寫字母或其它特殊符號當中的三種以上組成,則認為這是一個比較安全的密碼.

        //顯示顏色-當用戶放開鍵盤或密碼輸入框失去焦點時,根據不同的級別顯示不同的顏色 
        function pwStrength(pwd) {
            Dfault_color = "#eeeeee";		//預設顏色
            L_color = "#FF0000";		//低強度的顏色,且只顯示在最左邊的單元格中
            M_color = "#FF9900";		//中等強度的顏色,且只顯示在左邊兩個單元格中
            H_color = "#33CC00";		//高強度的顏色,三個單元格都顯示
            if (pwd == null || pwd == '') {
                Lcolor = Mcolor = Hcolor = Dfault_color;
            }
            else {
                S_level = checkStrong(pwd);
                switch (S_level) {
                    case 0:
                        Lcolor = Mcolor = Hcolor = Dfault_color;
                        break;
                    case 1:
                        Lcolor = L_color;
                        Mcolor = Hcolor = Dfault_color;
                        break;
                    case 2:
                        Lcolor = Mcolor = M_color;
                        Hcolor = Dfault_color;
                        break;
                    default:
                        Lcolor = Mcolor = Hcolor = H_color;
                }
            }
            document.getElementById("strength_L").style.background = Lcolor;
            document.getElementById("strength_M").style.background = Mcolor;
            document.getElementById("strength_H").style.background = Hcolor;
            return;
        }
        //document.getElementById  :根據指定的 id 屬性值得到物件。
        //document.getElementById(" ") 得到的是一個物件,
        //用 alert 顯示得到的是“ object ”,而不是具體的值,它有 value 和 length 等屬性,加上 .value 得到的才是具體的值!

    </script>

在前臺的控制元件中注意加入控制屬性:

程式碼如下:

<asp:TextBox ID="txtPass" runat="server" onFocus="tPass();" 
    TextMode="Password" Width="115px" onKeyUp="pwStrength(this.value)" onBlur="pwStrength(this.value)" ></asp:TextBox><span class="marginleft">*</span></td>
      <td style="width:230px;" align="left">
       <table id="tab" border="0"align="left" cellpadding="0" cellspacing="2" bordercolor="#eeeeee" width="90%">
           <tr align="center" >
		<td width="40%">密碼強度:</td>
		<td width="20%" id="strength_L" >弱</td>  
		<td width="20%" id="strength_M" >中</td>  
		<td width="20%" id="strength_H" >強</td>  
	    </tr>

網路上還有不同的樣式:結果是大同小異的。

程式碼如下:

<div>      
       輸入密碼:<asp:TextBox runat="server" onKeyUp=pwStrength(this.value) onBlur=pwStrength(this.value) ></asp:TextBox><br />      
       密碼強度:      
       <table border="1" cellpadding="1" borderColorDark="#fdfeff" borderColorLight="#99ccff" cellspacing="1" style="width: 200px; display: inline; background-color:#e0f0ff">      
           <tr>      
               <td style="width: 100px; height: 19px;" align="center">      
                   弱</td>      
               <td style="width: 100px; height: 19px;" align="center">      
                   中</td>      
               <td style="width: 100px; height: 19px;" align="center">      
                   強</td>      
           </tr>      
       </table>      
   </div>  


2.js指令碼驗證手機號郵箱等問題所使用的方法

程式碼如下:
<script type="text/javascript">
        function PassIsSame() {
            var pwd1 = document.getElementById("<%= txtPass.ClientID %>").value;
            var pwd2 = document.getElementById("<%= txtQpass.ClientID %>").value;//<!-- 對比兩次輸入的密碼 -->
            if (pwd1 == pwd2) {
                document.getElementById("PassTishi").innerHTML = "";
            }
            else {
                document.getElementById("PassTishi").innerHTML = "<font color='red'>兩次密碼不相同</font>";
            }
            return;
        }


        //驗證手機號碼 
        function checkPhone() {  
            var phone = document.getElementById("<%= txtPhone.ClientID %>").value;
            if (!(/^1[34578]\d{9}$/.test(phone))) {
                document.getElementById("tPhoneTishi").innerHTML = "<font color='red'>手機號碼驗證出錯!</font>";
                return false;
            }
            else
            {
                document.getElementById("tPhoneTishi").innerHTML = "";
                return true;
            }
        }


        //驗證郵箱格式 
        function checktxtEmail() {
            var phone = document.getElementById("<%= txtEmail.ClientID %>").value;
            if (!(/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(phone))) {
                document.getElementById("txtEmailTishi").innerHTML = "<font color='red'>郵箱格式驗證出錯!</font>";
                return false;
            }
            else {
                document.getElementById("txtEmailTishi").innerHTML = "";
                return true;
            }
        }
    </script>


3.將滑鼠放到textbox文字框中所出現的對應的提示

程式碼:
<script type="text/javascript">
	//顯示會員名輸入提示
function tName()
{
	       document.getElementById("sp").innerHTML="只能輸入數字、字母下劃線,<br>例如:mr_2008";	       
	    }
	  //顯示密碼輸入提示  
	 function tPass()
	    {
	         document.getElementById("sp").innerHTML="為了提供密碼的安全性。<br>建議密碼在6位以上。";
	 }
	 //顯示密碼輸入提示  
	 function tQPass() {
	     document.getElementById("sp").innerHTML = "再次輸入密碼。<br>建議密碼在6位以上。";
	 }
	   
	  //顯示電話碼輸入提示
	 function tPhone()
	 {
	        document.getElementById("sp").innerHTML="輸入手機號,以方便聯絡您<br>手機號應為11位";
	 }
	 //顯示電子郵件輸入提示
	function tEmail()
	{
	        document.getElementById("sp").innerHTML="請輸入正確的電子郵件。<br>例如:[email protected]";
	}
	//顯示所在城市輸入提示
	function tCity()
	{
	    document.getElementById("sp").innerHTML="輸入所在城市。<br>例如:長春市";
	}
	//顯示找回密碼問題提示
	function tQuestion() {
	    document.getElementById("sp").innerHTML = "輸入找回密碼問題。<br>例如:我的小學名稱";
	}
        //顯示找回密碼問題答案提示
	function tQuestionAnswer() {
	    document.getElementById("sp").innerHTML = "輸入找回密碼問題答案。<br>例如:中所屯小學";
	}
    </script>


<span id="sp" style="font-size: 14px; color: BlueViolet;"></span>
在前臺textbox控制元件下所需要做的操作 程式碼
 <span >確認密碼:</span>
 <td style="text-align: left">
<asp:TextBox ID="txtQpass" runat="server" TextMode="Password" Width="115px" onFocus="tQPass();" onKeyUp="PassIsSame();"></asp:TextBox><span
class="marginleft">*</span>
<div style="width: 100%;"><span id="PassTishi" style="font-size: 12px; color: red;"></span></div>
<td style="text-align: right;">

<span >電  話:</span>
<td style="text-align: left;">
<asp:TextBox onFocus="tPhone();" ID="txtPhone" runat="server" Width="115px" onKeyUp="checkPhone();"></asp:TextBox></td>

<div style="width: 100%;"><span id="tPhoneTishi" style="font-size: 12px; color: red;"></span></div>



<td style="text-align: right; ">
<span >E-mail:</span>
<td style="width: 13px; text-align: left; ">
<asp:TextBox ID="txtEmail" onFocus="tEmail();" runat="server" Width="115px" onKeyUp="checktxtEmail();"></asp:TextBox></td>
<div style="width: 100%;"><span id="txtEmailTishi" style="font-size: 12px; color: red;"></span></div>

<td style="text-align: right;">
<span >所在城市:</span></td>
<td style="text-align: left">
<asp:TextBox ID="txtCity" onFocus="tCity();" runat="server" Width="115px"></asp:TextBox></td>

<td style="width:150px; text-align: right; font-size:13px;">
<span >找回密碼時的問題:</span>
<td style="text-align: left" colspan="2">
<asp:TextBox ID="txt_Question" onFocus="tQuestion();" runat="server" Width="235px"></asp:TextBox></td>

<td style=" text-align: right;">
 <span >問題答案:</span>
<td style="text-align: left" colspan="2">
<asp:TextBox ID="txt_Answer"onFocus="tQuestionAnswer();" runat="server" Width="235px"></asp:TextBox></td>




4.用Md5加密得到的密碼項資料庫中記錄

程式碼:
 string userPass = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPass.Text, "MD5");



附加。

相關推薦

asp.net使用者註冊密碼強度驗證相關問題詳細敘述

1.近期學習的使用者註冊是密碼強度問題。 <script type="text/javascript" language="javascript"> //總:JS判斷密碼強度 //判斷輸入密碼的型別 測試某個字元是屬於哪一類.

asp.net使用者註冊密碼強度相關的問題

課堂上老師老師講解的東西,看懂是一回事,弄明白是一回事,會運用還是一回事,反覆解讀是學習所不可缺的。 1.近期學習了使用者註冊時密碼強度問題做次記錄以便後續使用。 <script type="text/javascript" language="javascript

ASP.NETASP.NET MVC 的差異、優點缺點

一個 src 頁面加載 加載 class .net 技術分享 views bubuko 眾所周知,在微軟的編程語言發展歷史中,asp.net是不得不提的一個重要的發展階段,它具有快速開發、層級明確的優點,但最大的缺點,同時也是它逐漸被廢棄的原因就是,頁面加載的viewsta

asp.net mvc 註冊中的郵箱激活功能實現

名稱 work 點擊 rom urn 內容 string 電子郵件 amp 基本流程圖 註冊頁面就不再寫出,現在將發送郵件的代碼粘貼出來 public ActionResult SendEmial() { int

Asp.net連接數據庫操作數據庫--入門

pen close 綁定 oid void area set 公共類 連接數據庫 1.創建公共類DB--4個方法。GetCon()//連接數據庫,sqlEx//執行數據庫操作, reDt//返回數據表, reDr//返回SqlDataReader對象 dr ///&l

ASP.NET整合UEditor獲取新聞內容出錯解決

一行代碼 destroy value blog 配置 text 有一個 復制 出錯 一、獲取內容 前臺加入代碼,在實例化編輯器那裏加入(這是我復制別人寫好的): <script type="text/javascript"> //實例化編輯器

Asp.Net高級知識回顧_HttpModule應用程序生命周期_1

應用 性能 枚舉 常用 進入 sdn 理解 bsp 管線 為什麽asp.net落後了,還講這些?因為mvc 還是沿用老框架的,加了一個請求模塊,在第七個事件中觸發; 一、概念 HTTP模塊(HttpModule)是通過實現IHttpModule接口和處理事件,在每次針對應用

Asp.Net高級知識回顧_HttpModule應用程序生命周期_2

不同 標識 asa x文件 stc 結束 下載 gac 5.0 一、HttpModule事件列表 BeginRequest 指示請求處理開始。 AuthenticateRequest PostAuthenticateRequest 封裝請求身份驗證過

ASP.NET文本框密碼賦默認值的方法

word 默認 tex 默認值 輸入框 文本框 方法 serve attr 對於普通的文本輸入框,可以使用下邊的方法賦默認值: <asp:TextBox ID="TextBox1" runat="server">12345</asp:TextBox>

ASP.NET -- WebForm -- .aspx.aspx.cs檔案

ASP.NET -- WebForm --  .aspx與.aspx.cs檔案 1. ASP.NET -- WebForm(C#)檔案 .aspx檔案:是Html頁面,頁面的佈局,樣式在該檔案中設計。 .aspx.cs檔案:後臺程式碼 .aspx.designer.cs檔案:由工具自動生成的

【菜鳥學習ASP.net】xmlhtml的區別

前言: 剛剛接觸了html現在又來了個xml,一開始有點迷糊,後來發現通過實踐對比學習,二者之間的區別越來越清晰明瞭了,接下來和我一起來搞懂它吧! 1、什麼是HTML 超文字標記語言(英語:HyperText Markup Language,簡稱:HTML)是一種用於建立網頁

ASP.NET Core管道中介軟體

ASP.NET Core管道和ASP.NET的事件驅動的管道有很大的不同,現在你可以在Startup檔案的Configure方法中呼叫Use,UseWhen,Map,MapWhen,Run方法來為特定的請求增加特定的處理邏輯。可以實現防盜鏈,日誌,許可權認證,事務處理等。

Asp.net core實戰2: 開發工具常用指令

如果你願意,完全可以使用notepad進行開發,不過也有可用的IDE推薦 1.visual Studio 這款視覺化的微軟神器當然是支援net core的啦! 2. visual studio code 這款跨平臺開發工具, 可以說是神器了.支援mac,linus,w

2018-Asp.net-MVC4教學 Linq,原生Sql等資料庫相關技術的應用比較

主要步驟如下:A.建立資料庫SpaceSchool資料庫。資料中有兩張表和一個檢視,建立程式碼是:USE [SpaceSchool] GO /****** 物件: Table [dbo].[Formteacher] 指令碼日期: 2018/4/23 星期一 17:05:45

Asp.net Mvc Codeplex Preview 5 原始碼MVCContrib4pv5釋出

剛剛抽些時間上網就發現Asp.net Mvc Codeplex Preview 5的原始碼釋出了. Asp.net Mvc Codeplex Preview 5已經發布了幾天,釋出時就說原始碼整理中 下面是原始碼的下載. 隨之MVCContrib的Pv5版本也釋出了. 這次的原始碼資料

Asp.net Mvc Framework 十(測試方法Filter的示例)

示例下載: http://files.cnblogs.com/chsword/MyTestMvc.rar 順遍說一下建立測試的方法 本身Asp.netMvc是提供有測試功能的 在新建Asp.netMVCApplication時,點選確定,會跳出一個Create Project Test的詢問

ASP.NET Core 認證授權[5]:初識授權

經過前面幾章的姍姍學步,我們瞭解了在 ASP.NET Core 中是如何認證的,終於來到了授權階段。在認證階段我們通過使用者令牌獲取到使用者的Claims,而授權便是對這些的Claims的驗證,如:是否擁有Admin的角色,姓名是否叫XXX等等。本章就來介紹一下 ASP.NET Core 的授權系統的簡單使

Theme、StylesheetTheme設定ASP.NET的樣式主題

1.動態網站與靜態網站 ASP.NET建立的動態網站,與靜態網站相比,簡單地說,就是在靜態網站的基礎上增加了由在伺服器端執行的程式碼動態生成的內容,這個在伺服器端執行的程式碼包括內碼表中的後臺程式碼,也包括前臺頁面中的控制元件。 靜態網頁的樣式,同樣適應於動態網頁的靜態內容

asp.net mvc 資料匯出excel表自excel表匯入資料到相應表

一、自資料表匯出excel /// <summary> /// 匯出excel /// </summary> /// <param name="sortgid"></param>

asp.net-頁面跳轉的方法例項

例項如下: .aspx程式碼如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sample_01.aspx.cs" Inherits="Sample_01" %> <!DOCTYPE