Java如何判断密码强度

Java如何判断密码强度,第1张

本程序按以下的方式进行评估.

1.如果密码少于5位,那么就认为这是一个弱密码.

2.如果密码只由数字、小写字母、大写字母或其它特殊符号当中的一种组成,则认为这是一个弱密码.

3.如果密码由数字、小写字母、大写字母或其它特殊符号当中的两种组成,则认为这是一个中度安全的密码.

4.如果密哪销码由数字、小写字搏让母、大写字母或其它特殊符号当中的三种以上组成,则认为这是一个比较安全的密码.

本程序将根据用户输入的密码分别显示不同的颜色表示密码的强度,具体程序如下:

以下是引用片段:

<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=0i<4i++){

if (num &1) modes++

num>>>=1

}

return modes

}

//checkStrong函数

//返回密码的强度级别

function checkStrong(sPW){

if (sPW.length<=4)

return 0//密码太短

Modes=0

for (i=0i<sPW.lengthi++){

//测试每一个字符的类别并统计一共有多少种模式.

Modes|=CharMode(sPW.charCodeAt(i))

}

return bitTotal(Modes)

}

//pwStrength函数

//当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色

function pwStrength(pwd){

O_color="#eeeeee"

L_color="#FF0000"

M_color="#FF9900"

H_color="#33CC00"

if (pwd==null||pwd==''){

Lcolor=Mcolor=Hcolor=O_color

}

else{

S_level=checkStrong(pwd)

switch(S_level) {

case 0:

Lcolor=Mcolor=Hcolor=O_color

case 1:

Lcolor=L_color

Mcolor=Hcolor=O_color

break

case 2:

Lcolor=Mcolor=M_color

Hcolor=O_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

}

</script>

<form name=form1 action="" >

输入密码:<input type=password size=10 onKeyUp=pwStrength(this.value) onBlur=pwStrength(this.value)>

<br>密码强度:

<table width="217" border="1" cellspacing="0" cellpadding="1" bordercolor="#cccccc" height="23" style='display:inline'>

<tr align="center" bgcolor="#eeeeee">

<td width="33%" id="strength_L">弱</td>

<td width="33%" id="strength_M">中</td>

<td width="33%" id="strength_H">强</td>

</tr>

</table>

</form>

C#正则表达式检测字符串(密码强度)

C# 判断是否英文或数字:

[c-sharp] view plain copy

Regex reg = new Regex(@"^[A-Za-z0-9]+$")

return reg.IsMatch(passwd)

JavaScript检测密码字符串强度:

[javascript] view plain copy

int intScore = 0

if (passwd.match(/[a-z]/))

{

intScore = (intScore+1)

} if (passwd.match(/[A-Z]/))

{

intScore = (intScore+5)

}

if (passwd.match(//d+/))

{

intScore = (intScore+5)

} if (passwd.match(/(/d.*/d.*/d)/))

{

intScore = (intScore+5)

}

if (passwd.match(/[!,@#$%^&*?_~]/))

{

intScore = (intScore+5)

} if (passwd.match(/([!,@#$%^&*?_~].*[!,@#$%^&*?_~])/))

{

intScore = (intScore+5)

}

if (passwd.match(/[a-z]/) &&passwd.match(/[A-Z]/))

{

intScore = (intScore+2)

}

if (passwd.match(//d/) &&passwd.match(//D/)) // [verified] both letters and numbers

{

intScore = (intScore+2)

}

if (passwd.match(/[a-z]/) &&passwd.match(/[A-Z]/) &&passwd.match(//d/) &&passwd.match(/[!,@#$%^&*?_~]/))

{

intScore = (intScore+2)

}

return intScore

import re

def check_password(passwd):

    if re.match(r'^(?=.*[A-Za-z])(?=.*[0-9])\w{6,}$',passwd):

      颂高  print "password %s correct"%passwd

        return 野绝尺True

    else:

        print "password %s is invalid"%passwd

        return False

函数check_password检查passwd必须由6个或以上的普通字符组成,必须有一个英文数字,一个英文字母,成功返回True,不符宏碧要求返回False


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8229012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存