检验密码强度的代码

    这里不能上传压缩包,比较不爽,只能把几个文件放上来了。
第一个是显示的页面。Untitled-1.html
    
<! 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 >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312"   />
< title > 无标题文档 </ title >
< link  rel ="stylesheet"  type ="text/css"  href ="WEBBlue1033.css" />
< script  type ="text/javascript"  src ="pswdplc.js" ></ script >
</ head >

< body >
< form  name ="RegProfileForm"  style ="margin:0px;"  method ="POST"  target ="_self"  onsubmit ="return OnSubmit(this);" >
Password:
< input  name ="p3e8"  type ="password"  id ="id3e8_9"  maxlength ="16"  autocomplete ="off"  value =""  style ="ime-mode:disabled"  class ="css0081"  onkeyup ="javascript:SetPwdStrengthEx(document.forms[0],this.value);"   />< br />
< script  type ="text/javascript" >
function DispPwdStrength(iN,sHL)
if(iN>3){ iN=3;}for(var i=0;i<4;i++)var sHCR="css0162";if(i<=iN){ sHCR=sHL;}if(i>0){ GEId("idSM"+i).className=sHCR;}GEId("idSMT"+i).style.display=((i==iN)?"inline":"none");}}
</ script >
< table  cellpadding ="0"  cellspacing ="0"  class ="css0161"  style ="height:19px" >< tr >< td  id ="idSM1"  width ="33%"  class ="css0162"  align ="center" >< span  style ="font-size:1px" > &nbsp; </ span >< span  id ="idSMT1"  style ="display:none;" > </ span ></ td >< td  id ="idSM2"  width ="34%"  class ="css0162"  align ="center"  style ="border-left:solid 1px #fff" >< span  style ="font-size:1px" > &nbsp; </ span >< span  id ="idSMT0"  style ="display:inline;font-weight:normal;color:#666" > Not rated </ span >< span  id ="idSMT2"  style ="display:none;" > </ span ></ td >< td  id ="idSM3"  width ="33%"  class ="css0162"  align ="center"  style ="border-left:solid 1px #fff" >< span  style ="font-size:1px" > &nbsp; </ span >< span  id ="idSMT3"  style ="display:none;" > </ span ></ td ></ tr ></ table >

</ body >
</ html >

第二个是JS文件,pswdplc.js
var  kNoCanonicalCounterpart  =   0 ;
var  kCapitalLetter  =   0 ;
var  kSmallLetter  =   1 ;
var  kDigit  =   2 ;
var  kPunctuation  =   3 ;
var  kAlpha  =   4 ;
var  kCanonicalizeLettersOnly  =   true ;
var  kCananicalizeEverything  =   false ;
var  gDebugOutput  =   null ;
var  kDebugTraceLevelNone  =   0 ;
var  kDebugTraceLevelSuperDetail  =   120 ;
var  kDebugTraceLevelRealDetail  =   100 ;
var  kDebugTraceLevelAll  =   80 ;
var  kDebugTraceLevelMost  =   60 ;
var  kDebugTraceLevelFew  =   40 ;
var  kDebugTraceLevelRare  =   20 ;
var  gDebugTraceLevel  =  kDebugTraceLevelNone;
function  DebugPrint()
{
var string = "";
if (gDebugTraceLevel && gDebugOutput &&
DebugPrint.arguments 
&& (DebugPrint.arguments.length > 1&& (DebugPrint.arguments[0<= gDebugTraceLevel))
{
for(var index = 1; index < DebugPrint.arguments.length; index++)
{
string 
+= DebugPrint.arguments[index] + " ";
}

string 
+= "<br>\n";
gDebugOutput(string);
}

}

function  CSimilarityMap()
{
this.m_elements = "";
this.m_canonicalCounterparts = "";
}

function  SimilarityMap_Add(element, canonicalCounterpart)
{
this.m_elements += element;
this.m_canonicalCounterparts += canonicalCounterpart;
}

function  SimilarityMap_Lookup(element)
{
var canonicalCounterpart = kNoCanonicalCounterpart;
var index = this.m_elements.indexOf(element);
if (index >= 0)
{
canonicalCounterpart 
= this.m_canonicalCounterparts.charAt(index);
}

else
{
}

return canonicalCounterpart;
}

function  SimilarityMap_GetCount()
{
return this.m_elements.length;
}

CSimilarityMap.prototype.Add 
=  SimilarityMap_Add;
CSimilarityMap.prototype.Lookup 
=  SimilarityMap_Lookup;
CSimilarityMap.prototype.GetCount 
=  SimilarityMap_GetCount;
function  CDictionaryEntry(length, wordList)
{
this.m_length = length;
this.m_wordList = wordList;
}

function  DictionaryEntry_Lookup(strWord)
{
var fFound = false;
if (strWord.length == this.m_length)
{
var nFirst = 0;
var nLast = this.m_wordList.length - 1;
while( nFirst <= nLast )
{
var nCurrent = Math.floor((nFirst + nLast)/2);
if( strWord == this.m_wordList[nCurrent])
{
fFound 
= true;
break;
}

else if ( strWord > this.m_wordList[nCurrent])
{
nLast 
= nCurrent - 1;
}

else
{
nFirst 
= nCurrent + 1;
}

}

}


return fFound;
}

CDictionaryEntry.prototype.Lookup 
=  DictionaryEntry_Lookup;
function  CDictionary()
{
this.m_entries = new Array()
}

function  Dictionary_Lookup(strWord)
{
for (var index = 0; index < this.m_entries.length; index++)
{
if (this.m_entries[index].Lookup(strWord))
{
return true;
}

}

}

function  Dictionary_Add(length, wordList)
{
var iL=this.m_entries.length;
var cD=new CDictionaryEntry(length, wordList)
this.m_entries[iL]=cD;
}

CDictionary.prototype.Lookup 
=  Dictionary_Lookup;
CDictionary.prototype.Add 
=  Dictionary_Add;
var  gSimilarityMap  =   new  CSimilarityMap();
var  gDictionary  =   new  CDictionary();
function  CharacterSetChecks(type, fResult)
{
this.type = type;
this.fResult = fResult;
}

function  isctype(character, type, nDebugLevel)
{
var fResult = false;
switch(type)
{
case kCapitalLetter:
if((character >= 'A'&& (character <= 'Z'))
{
fResult 
= true;
}

break;
case kSmallLetter:
if ((character >= 'a'&& (character <= 'z'))
{
fResult 
= true;
}

break;
case kDigit:
if ((character >= '0'&& (character <= '9'))
{
fResult 
= true;
}

break;
case kPunctuation:
if ("!@#$%^&*()_+-='\";:[{]}\|.>,</?`~".indexOf(character) >= 0)
{
fResult 
= true;
}

break;
case kAlpha:
if (isctype(character, kCapitalLetter) || isctype(character, kSmallLetter))
{
fResult 
= true;
}

break;
default:
break;
}


return fResult;
}

function  CanonicalizeWord(strWord, similarityMap, fLettersOnly)
{
var canonicalCounterpart = kNoCanonicalCounterpart;
var strCanonicalizedWord = "";
var nStringLength = 0;
if ((strWord != null&& (strWord.length > 0))
{
strCanonicalizedWord 
= strWord;
strCanonicalizedWord 
= strCanonicalizedWord.toLowerCase();

if (similarityMap.GetCount() > 0)
{
nStringLength 
= strCanonicalizedWord.length;

for(var index = 0; index < nStringLength; index++)
{
if (fLettersOnly && !isctype(strCanonicalizedWord.charAt(index), kSmallLetter, kDebugTraceLevelSuperDetail))
{
continue;
}


canonicalCounterpart 
= similarityMap.Lookup(strCanonicalizedWord.charAt(index));
if (canonicalCounterpart != kNoCanonicalCounterpart)
{
strCanonicalizedWord 
= strCanonicalizedWord.substring(0, index) + canonicalCounterpart +
strCanonicalizedWord.substring(index 
+ 1, nStringLength);
}

}

}

}

return strCanonicalizedWord;
}

function  IsLongEnough(strWord, nAtLeastThisLong)
{
if ((strWord == null|| isNaN(nAtLeastThisLong))
{
return false;
}

else if (strWord.length < nAtLeastThisLong)
{
return false;
}


return true;
}

function  SpansEnoughCharacterSets(strWord, nAtLeastThisMany)
{
var nCharSets = 0;
var characterSetChecks = new Array(
new CharacterSetChecks(kCapitalLetter, false),
new CharacterSetChecks(kSmallLetter, false),
new CharacterSetChecks(kDigit, false),
new CharacterSetChecks(kPunctuation, false)
);
if ((strWord == null|| isNaN(nAtLeastThisMany))
{
return false;
}


for(var index = 0; index < strWord.length; index++)
{
for(var nCharSet = 0; nCharSet < characterSetChecks.length;nCharSet++)
{
if (!characterSetChecks[nCharSet].fResult && isctype(strWord.charAt(index), characterSetChecks[nCharSet].type, kDebugTraceLevelAll))
{
characterSetChecks[nCharSet].fResult 
= true;
break;
}

}

}

for(var nCharSet = 0; nCharSet < characterSetChecks.length;nCharSet++)
{
if (characterSetChecks[nCharSet].fResult)
{
nCharSets
++;
}

}


if (nCharSets < nAtLeastThisMany)
{
return false;
}


return true;
}

function  FoundInDictionary(strWord, similarityMap, dictionary)
{
var strCanonicalizedWord = "";

if((strWord == null|| (similarityMap == null|| (dictionary == null))
{
return true;
}

strCanonicalizedWord 
= CanonicalizeWord(strWord, similarityMap, kCanonicalizeLettersOnly);

if (dictionary.Lookup(strCanonicalizedWord))
{
return true;
}


return false;
}

function  IsCloseVariationOfAWordInDictionary(strWord, threshold, similarityMap, dictionary)
{
var strCanonicalizedWord = "";
var nMinimumMeaningfulMatchLength = 0;

if((strWord == null|| isNaN(threshold) || (similarityMap == null|| (dictionary == null))
{
return true;
}

strCanonicalizedWord 
= CanonicalizeWord(strWord, similarityMap, kCananicalizeEverything);
nMinimumMeaningfulMatchLength 
= Math.floor((threshold) * strCanonicalizedWord.length);
for (var nSubStringLength = strCanonicalizedWord.length; nSubStringLength >= nMinimumMeaningfulMatchLength; nSubStringLength--)
{
for(var nSubStringStart = 0; (nSubStringStart + nMinimumMeaningfulMatchLength) < strCanonicalizedWord.length; nSubStringStart++)
{
var strSubWord = strCanonicalizedWord.substr(nSubStringStart, nSubStringLength);

if (dictionary.Lookup(strSubWord))
{
return true;
}

}

}

return false;
}


function  ClientSideStrongPassword()
{
return (IsLongEnough(ClientSideStrongPassword.arguments[0], "7"&&
SpansEnoughCharacterSets(ClientSideStrongPassword.arguments[
0], "3"&&
(
!(IsCloseVariationOfAWordInDictionary(ClientSideStrongPassword.arguments[0], "0.6"
ClientSideStrongPassword.arguments[
1], ClientSideStrongPassword.arguments[2]))));
}


function  ClientSideMediumPassword()
{
return (IsLongEnough(ClientSideMediumPassword.arguments[0], "7"&&
SpansEnoughCharacterSets(ClientSideMediumPassword.arguments[
0], "2"&&
(
!(FoundInDictionary(ClientSideMediumPassword.arguments[0], ClientSideMediumPassword.arguments[1], 
ClientSideMediumPassword.arguments[
2]))));
}


function  ClientSideWeakPassword()
{
return (IsLongEnough(ClientSideWeakPassword.arguments[0], "6"||
(
!(IsLongEnough(ClientSideWeakPassword.arguments[0], "0"))));
}

function  GEId(sID) {return document.getElementById(sID);}
function  EvalPwdStrength(oF,sP) {PadPasswd(oF,sP.length*2);if(ClientSideStrongPassword(sP,gSimilarityMap,gDictionary)){DispPwdStrength(3,'css0165');}else if(ClientSideMediumPassword(sP,gSimilarityMap,gDictionary)){DispPwdStrength(2,'css0164');}else if(ClientSideWeakPassword(sP,gSimilarityMap,gDictionary)){DispPwdStrength(1,'css0163');}else{DispPwdStrength(0,'css0162');}} function  SetPwdStrengthEx(oF,sP) {EvalPwdStrength(oF,sP);if(ClientSideStrongPassword(sP,gSimilarityMap,gDictionary)){document.cookie="pwdstrength=3";}else if(ClientSideMediumPassword(sP,gSimilarityMap,gDictionary)){document.cookie="pwdstrength=2";}else if(ClientSideWeakPassword(sP,gSimilarityMap,gDictionary)){document.cookie="pwdstrength=1";}else{document.cookie="pwdstrength=0";}} function  SetPwdStrength(sP,oF) {if(ClientSideStrongPassword(sP,gSimilarityMap,gDictionary)){oF.value = 3;}else if(ClientSideMediumPassword(sP,gSimilarityMap,gDictionary)){oF.value = 2;}else if(ClientSideWeakPassword(sP,gSimilarityMap,gDictionary)){oF.value = 1;}else{oF.value = 0;}} function  XPWCont() {if (typeof(parent.opener.RegistrationFinishedCallback)!="undefined"){parent.opener.RegistrationFinishedCallback();}parent.close();} function  OnSigninSubmit(oF) {if(g_fAS){return false;}if(typeof oF!="object"){return false;}var bL=true,bP=true,bI=true,bH=true;bL=Val(oF.login);var sEM=oF.login.value;bL=ValEM(sEM);if(typeof oF.passwd=="object"){bP=Val(oF.passwd);}if(typeof oF.pin=="object"){bI=Val(oF.pin);}if(typeof oF.HIPSolution=="object"){bH=Val(oF.HIPSolution);}if(!bL||!bP||!bI||!bH){var fSF=true;var aE=["i0518","i0519","i0512","i0527","i0545","i0562","i0517"];HDivs(aE);if(!bL){fSF=SwErr("i0519",oF.login,fSF)};if(!bI){fSF=SwErr("i0527",oF.pin,fSF)};if(!bH){fSF=SwErr("i0517",oF.HIPSolution,fSF)};if(!bP){fSF=SwErr("i0512",oF.passwd,fSF)};return false;}if(typeof oF.passwd=="object"){PadPasswd(oF,oF.passwd.value.length);}if(typeof g_DO!="undefined"){var dom=sEM.substr(sEM.indexOf('@')+1);var sU=g_DO[dom.toLowerCase()];if(sU){oF.action=sU;}}if(typeof g_QS!="undefined"){if(g_QS){var sS="&";if(oF.action.indexOf('?')==-1){sS="?";}if(oF.action.indexOf(g_QS)==-1){oF.action+=sS+g_QS;}}}g_fAS=true;oF.login.value=oF.login.value.toLowerCase();oF.submit();return false;} function  OnPadSubmit(oF) {if(typeof oF.CurrPW=="object"){PadPasswd(oF,oF.CurrPW.value.length);}oF.submit();return false;} function  OnPadSubmitWithAction(oF,szU) {if(typeof oF.CurrPW=="object"){PadPasswd(oF,oF.CurrPW.value.length);}return OnSubmitWithAction(oF,szU);} function  PadPasswd(oF,lPwd) {if(typeof oF.PwdPad=="object"){var sPad="IfYouAreReadingThisYouHaveTooMuchFreeTime";var lPad=sPad.length-lPwd;oF.PwdPad.value=sPad.substr(0,(lPad<0)?0:lPad);}} function  HDivs(aE) {for(var i=0;i<aE.length;++i){var o=GEId(aE[i]);if(o){o.style.display="none";}}} function  SwErr(sID,oFN,fSF) {GEId(sID).style.display="block";if(fSF){oFN.focus();oFN.select();}return false;
}

第三个是Css文件WEBBlue1033.css
.css0162
{} {background-color:#EBEBEB;border-right:solid 1px #BEBEBE;border-bottom:solid 1px #BEBEBE;}
.css0163
{} {background-color:#FF4545;border-right:solid 1px #BB2B2B;border-bottom:solid 1px #BB2B2B;}
.css0164
{} {background-color:#FFD35E;border-right:solid 1px #E9AE10;border-bottom:solid 1px #E9AE10;}
.css0165
{} {background-color:#3ABB1C;border-right:solid 1px #267A12;border-bottom:solid 1px #267A12;}







转载于:https://www.cnblogs.com/chen79/archive/2008/01/17/1042614.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值