密码按如下规则进行计分,并根据不同的得分为密码安全等级划分
一、密码长度
5分:小于等于4个字符
10分:5-7个字符
25分:大于等于8个字符
二、字母:
0分:没有字母
10分:密码里字母全是大(小)写
20分:密码里字母符合“大小写混合”
三、数字
0分:没有数字
10分:1个数字
20分:大于1个数字
五、奖励(只能选符合最多的那种奖励)
2分:字母和数字
3分:字母、数字、符号
5分:大小写字母、数字、符号
评分标准及对应输出
>=90:非常安全 VERY_SECURE
>=80:安全 SECURE
>=70:非常强 VERY_STRONG
>=60:强 STRONG
>=50:一般 AVERAGE
>=25:弱 WEAK
>=0:非常弱 VERY_WEAK
import java.util.Scanner;
public class Main {
public static void main(String[] args) {//通过
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
int bj1=0,bj2=0,bj3=0,bj4=0,bj5=0;//分别对应5种得分标准
if(str.length()<=4){
bj1=5;
}else if(5<=str.length()&&str.length()<=7){
bj1=10;
}else{
bj1=25;
}
int tmp1=0,tmp2=0,tmp3=0,tmp4=0;//标记大小字母、数字、符号的个数
for(int i=0;i<str.length();i++){
//大写字母
if(65<=str.charAt(i)&&str.charAt(i)<=90){
tmp1++;
}
//小写字母
else if(97<=str.charAt(i)&&str.charAt(i)<=122) {
tmp2++;
}
//数字
else if(48<=str.charAt(i)&&str.charAt(i)<=57){
tmp3++;
}else{//符号
tmp4++;
}
}
//字母
if(tmp1+tmp2==0){//没有字母
bj2=0;
}else{//有字母
if(tmp1==0||tmp2==0){//只有大写或小写
bj2=10;
}else{//大小写混合
bj2=20;
}
}
//数字
if(tmp3==0){
bj3=0;
}
if(tmp3==1){
bj3=10;
}
if(tmp3>1){
bj3=20;
}
//符号
if(tmp4==0){
bj4=0;
}
if(tmp4==1){
bj4=10;
}
if(tmp4>1){
bj4=25;
}
//奖励
if(bj2==10&&bj3!=0){
bj5=2;
}
if(bj2==10&&bj3!=0&&tmp4!=0){
bj5=3;
}
if(bj2==20&&bj3!=0&&tmp4!=0){
bj5=5;
}
int sum=bj1+bj2+bj3+bj4+bj5;
if(sum>=90){
System.out.println("VERY_SECURE");
}
if(sum>=80&&sum<90){
System.out.println("SECURE");
}
if(sum>=70&&sum<80){
System.out.println("VERY_STRONG");
}
if(sum>=60&&sum<70){
System.out.println("STRONG");
}
if(sum>=50&&sum<60){
System.out.println("AVERAGE");
}
if(sum>=25&&sum<50){
System.out.println("WEAK");
}
if(sum>=0&&sum<25){
System.out.println("VERY_WEAK");
}
}
}