密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。
一、密码长度:
5 分: 小于等于4 个字符
10 分: 5 到7 字符
25 分: 大于等于8 个字符
二、字母:
0 分: 没有字母
10 分: 全都是小(大)写字母
20 分: 大小写混合字母
三、数字:
0 分: 没有数字
10 分: 1 个数字
20 分: 大于1 个数字
四、符号:
0 分: 没有符号
10 分: 1 个符号
25 分: 大于1 个符号
五、奖励:
2 分: 字母和数字
3 分: 字母、数字和符号
5 分: 大小写字母、数字和符号
最后的评分标准:
>= 90: 非常安全
>= 80: 安全(Secure)
>= 70: 非常强
>= 60: 强(Strong)
>= 50: 一般(Average)
>= 25: 弱(Weak)
>= 0: 非常弱
public final class Demo { public static Safelevel GetPwdSecurityLevel(String pPasswordStr) { /* 在这里实现功能 */ int grade = 0; // 一、密码长度: grade += checkLength(pPasswordStr); // 二、字母: grade += checkZiMu(pPasswordStr); // 三、数字: grade += checkNumber(pPasswordStr); // 四、符号: grade += checkFuHao(pPasswordStr); // 五、奖励: grade += jianli(pPasswordStr); // 最后的评分标准: return pinFen(grade); } private static Safelevel pinFen(int grade) { Safelevel safe; if (grade >= 90) { safe = Safelevel.VERY_SECURE; } else if (grade >= 80) { safe = Safelevel.SECURE; } else if (grade >= 70) { safe = Safelevel.VERY_STRONG; } else if (grade >= 60) { safe = Safelevel.STRONG; } else if (grade >= 50) { safe = Safelevel.AVERAGE; } else if (grade >= 25) { safe = Safelevel.WEAK; } else { safe = Safelevel.VERY_WEAK; } return safe; } private static int jianli(String pPasswordStr) { int grade = 0; int minNum = getNumber(pPasswordStr, "[a-z]"); int maxNum = getNumber(pPasswordStr, "[A-Z]"); int shuZhiNum = (null == pPasswordStr || "".equals(pPasswordStr.trim())) ? 0 : getNumber(pPasswordStr, "[0-9]"); int fuHaonum = ((null == pPasswordStr) ? null : pPasswordStr .replaceAll("[\\p{Alnum}]", "").replaceAll(" ", "").length()); if (minNum != 0 && maxNum != 0 && shuZhiNum != 0 && fuHaonum != 0) {// 大小写字母、数字和符号 grade = 5; } else if ((minNum != 0 || maxNum != 0) && shuZhiNum != 0 && fuHaonum != 0) {// 字母、数字和符号 grade = 3; } else if ((minNum != 0 || maxNum != 0) && shuZhiNum != 0) {// 字母和数字 grade = 0; } return grade; } private static int checkFuHao(String pPasswordStr) { int grade = 0; int num = ((null == pPasswordStr) ? null : pPasswordStr.replaceAll( "[\\p{Alnum}]", "").replaceAll(" ", "").length()); if (num == 0) { grade = 0; } else if (num == 1) { grade = 10; } else { grade = 25; } return grade; } private static int checkNumber(String pPasswordStr) { int grade = 0; int num = getNumber(pPasswordStr, "[0-9]"); if (num == 0) { grade = 0; } else if (num == 1) { grade = 10; } else { grade = 20; } return grade; } private static int checkLength(String pPasswordStr) { int grade = 0; int length = pPasswordStr.length(); if (length >= 8) { grade = 25; } else if (length >= 5) { grade = 10; } else { grade = 5; } return grade; } private static int checkZiMu(String pPasswordStr) { int grade = 0; int minNum = getNumber(pPasswordStr, "[a-z]"); int maxNum = getNumber(pPasswordStr, "[A-Z]"); if (minNum == 0 && maxNum == 0) { grade = 0; } else if (minNum == 0 || maxNum == 0) { grade = 10; } else { grade = 20; } return grade; } private static int getNumber(String str, String s) { char[] c = str.toCharArray(); int count = 0; for (char d : c) { if ((d + "").matches(s)) { count++; } } return count; } }
public enum Safelevel { VERY_WEAK, /* 非常弱 */ WEAK, /* 弱 */ AVERAGE, /* 一般 */ STRONG, /* 强 */ VERY_STRONG, /* 非常强 */ SECURE, /* 安全 */ VERY_SECURE /* 非常安全 */ }
相关推荐
密码强度等级校验
jQuery密码强度检测高级版代码是一款支持各种不同提醒的jQuery密码强度验证代码,根据密码强度等级页面背景变色功能,效果非常赞。
效果描述: 我们经常在一些网站上,当注册会员账号的时候,通常会有密码输入这样一个选项 随着你输入密码的长度,底部会相应显示密码强度等级,以此来提示用户加强自己的密码管理
密码强度校验 模仿很多网站上的密码强度校验,基于jquery插件写的密码强度校验,将密码等级分为三级,纯字符或数字或特殊字符 达到一定位数 具体可以看下例子
vue.js表单密码强度验证代码是一款适用于手机注册表单输入密码强度验证特效。
一个密码强度检查器
注册时,用来验证密码强度级别。。。。。。
一个java实现的密码强度验证, 带图片的
使用Vue实现的密码强度显示效果
基于jsp页面的密码强度效果的显示,很好用,很实际!
输入一个不少于六位的密码,并判断强弱。如果密码为纯数字,则为弱密码;如果密码含有数字及字母则为中等强度;如果有数字、字母和其他字符则为高强度密码 如果密码小于六位,则为不合格密码,要重新输入
求数组中的最小值,数组中的值求和,去除字符串中的空格(1-所有空格 2-前后空格 3-前空格 4-后空格),字符转换(1:首字母大写 2:首字母小写 3:大小写转换 4:全部大写 5:全部小写),检测密码强度 等级1-5,在...
jQuery密码强度智能检测表单是一款基于jQuery实现的一个有效的密码复杂程度的验证手段,提示用户的密码强度,并且强制用户输入足够安全的密码搭配。密码强度分弱、中、强3个等级强度智能识别。
主要介绍了java实现的密码强度检测功能,结合完整实例形式分析了java针对密码强度检测相关的字符串遍历、判断,以及输出密码强度等级相关操作技巧,需要的朋友可以参考下
效果描述: ... 随着你输入密码的长度,底部会相应显示密码强度等级,以此来提示用户加强自己的密码管理 使用方法: 1、将style中的样式拷贝到你的网页中 2、将body中的代码部分拷贝到你需要的地方即可
#Python# 判断密码的安全等级问题描述问题分析代码 问题描述 输入输入一个表示密码的字符串,编写程序判断密码的安全级别为低级密码、中级密码和高级密码。 低级密码要求: 1.密码由单纯的数字或字母组成 2.密码长度...
首先说一下密码强度的三种等级是如何划分的? 弱:一般就是纯数字或纯小写字母或者纯大写字母组成的,这种密码较简单,所以安全等级为弱。 中:由上述情况中的任意两种组成的密码强度为中。 强:上述三种情况都有。 ...
密码强度验证 需求 首先我们需要知道需求是什么? 这很重要! 要知道 我们写的一切逻辑都是建立在需求之上 当输入框聚焦时提示密码要求 当密码符合要求时 隐藏提示 并给予反馈 密码等级低时 提示密码等级为低 密码...
CSS3实现密码强度指示效果
很好很实用的JavaScript实现密码强度验证 实用方便 容易上手 说明:1、由于没有具体说明要用什么强度规则,所以使用了自己定义的一个规则(认为不合理的地方可以自己更改,很方便) 2、密码框输入内容分三种类型:数字...