密码强度规则(仿 google)

2009-08-05 13:20:01

一、密码长度: * 5 分: 小于等于 4 个字符 * 10 分: 5 到 7 字符 * 25 分: 大于等于 8 个字符 二、字母: * 0 分: 没有字母 * 10 分: 全都是小(大)写字母 * 20 分: 大小写混合字母 三、数字: * 0 分: 没有数字 * 10 分: 1 个数字 * 20 分: 大于等于 3 个数字 四、符号: * 0 分: 没有符号 * 10 分: 1 个符号 * 25 分: 大于 1 个符号 五、奖励: * 2 分: 字母和数字 * 3 分: 字母、数字和符号 * 5 分: 大小写字母、数字和符号 最后的评分标准: * >= 90: 非常安全 * >= 80: 安全(Secure) * >= 70: 非常强 * >= 60: 强(Strong) * >= 50: 一般(Average) * >= 25: 弱(Weak) * >= 0: 非常弱 源自:《[url=http://www.codeandcoffee.com/2007/07/16/how-to-make-a-password-strength-meter-like-google-v20/]How to Make a Password Strength Meter Like Google v2.0[/url]》 实现 [code]/** * 密码强度检测(cryptographic strength check),返回0~95之间的数字..数字超大强度越高,不支持中文字符,如密码文本中包含中文~该中文字符将作为字符打分 * * @param passString 待检测的密码文本 * @return 返回0~95之间的数字..数字超大强度越高 */ static public function csCheck(passString:String):uint { if(!passString)return 0; var count:uint = 0; count += passString.length<=4?5:(passString.length>=8?25:10); count += !passString.match(/[a-z]/i)?0:(passString.match(/[a-z]/) &amp;&amp; passString.match(/[A-Z]/)?20:10); count += !passString.match(/[0-9]/)?0:(passString.match(/[0-9]/g).length >= 3?20:10); count += !passString.match(/\W/)?0:(passString.match(/\W/g).length > 1?25:10); count += !passString.match(/[0-9]/)||!passString.match(/[a-z]/i)?0:(!passString.match(/\W/)?2:(!passString.match(/[a-z]/) || !passString.match(/[A-Z]/)?3:5)); return count }[/code]