(JAVA)密码强度判断
奈落之魂 2017-11-06 08:03:55 从键盘上输入一字符串作为密码,根据下列情况来判断密码是否有效,
对有效的密码判断其强度。
密码要求:长度至少 6 位,只能包含英文大小字母、数字以及特殊字
符@#¥%&_。
规则为:
(1)长度小于 6 位的密码为无效,对长度大于等于 6 的,但里面只含
有一个字符的也无效,如 aaaaaaaa。
对于有效的密码,按下面规则判定其强度:
(2)对于(数字、小写字母、大写字母、含特殊字符),若密码中只
含其中一种,此种密码强度为弱。如:
1234567,abcdefs,ABDFGHJ,#$%@#$,
(3)对于(数字、小写字母、大写字母、特殊字符),若密码中只含
其中两种,强度为中。
(4)对于(数字、小写字母、大写字母、特殊字符),若密码中只含
其中三种,强度为强
最好直接修改下我的程序
package 实验;
import java.util.Scanner;
public class A31 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("写一个java正则表达式,判断输入的密码强度,是数字弱搜索,是字母较弱,数字加字母强:");
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (line.length() < 6) {
System.out.print("输入的密码无效。");
} else {
if (line.matches("^\\d+$")) {
System.out.println("数字弱");
} else if (line.matches("^[a-zA-Z]+$")) {
System.out.println("字母弱");
} else if (line.matches(
"(?i)^((\\d+[\\da-z]*[a-z]+)|([a-z]+[\\da-z]*\\d+)|([a-z]+[\\da-z]*[a-z]*)|(\\d+[\\da-z]*\\d*))$")) {
System.out.println("密码强");
} else {
System.out.println("密码无效。");
scanner.close();
break;
}
}
}
}
}