密碼已經是我們生活工作中必不可少的工具,但一個不安全的密碼有又有可能會給我們造成不必要的損失。作為網站設計者,如果我們在網頁中能對用戶輸入的密碼進行安全評估,並顯示出相應的提示信息,那麼對用戶設置一個安全的密碼將有很大幫助。同時也使得網站更具人性化,更有吸引力.
什麼是一個安全的密碼呢?本程序按以下的方式進行評估.
1.如果密碼少於5位,那麼就認為這是一個弱密碼.
2.如果密碼只由數字、小寫字母、大寫字母或其它特殊符號當中的一種組成,則認為這是一個弱密碼.
3.如果密碼由數字、小寫字母、大寫字母或其它特殊符號當中的兩種組成,則認為這是一個中度安全的密碼.
4.如果密碼由數字、小寫字母、大寫字母或其它特殊符號當中的三種以上組成,則認為這是一個比較安全的密碼.
本程序將根據用戶輸入的密碼分別顯示不同的顏色表示密碼的強度,具體程序如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CipherIntension.ASPx.cs" Inherits="CipherIntension" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">
<html XMLns="http://www.w3.org/1999/xHtml" >
<head runat="server">
<title>使用Javascript評估用戶輸入密碼的強度</title>
<style type="text/CSS">
<!--
body {
font-size: 12px;
}
input {
width: 212px;
border: 1px solid #696969;
height: 20px;
vertical-align: bottom;
line-height: 170%;
}
-->
</style>
<script language=Javascript>
//CharMode函數
//測試某個字符是屬於哪一類.
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;
}
//checkStrong函數
//返回密碼的強度級別
function checkStrong(sPW){
if (sPW.length<=4)
return 0; //密碼太短
Modes=0;
for (i=0;i<sPW.length;i++){
//測試每一個字符的類別並統計一共有多少種模式.