题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String password = scanner.nextLine();
char[] chararr = password.toCharArray();
int score = 0;
if (chararr.length < 4 || chararr.length == 4) {
score = 5;
} else if (chararr.length >= 5 && chararr.length <= 7) {
score = 10;
} else if (chararr.length >= 8) {
score = 25;
}
int endscore = score + getpassword2(chararr) + getpassword3(chararr)+ getpassword4(chararr)
+ getpassword5(chararr);
if(endscore >= 90){
System.out.println("VERY_SECURE");
}
else if(endscore >= 80){
System.out.println("SECURE");
}
else if(endscore >= 70){
System.out.println("VERY_STRONG");
}
else if(endscore >= 60){
System.out.println("STRONG");
}
else if(endscore >= 50){
System.out.println("AVERAGE");
}
else if(endscore >= 25){
System.out.println("WEAK");
}
else if(endscore >= 0){
System.out.println("VERY_WEAK");
}
}
public static int getpassword2(char[] chararr) {
int score1 = 0;
int score2 = 0;
//是否字母
for (int i = 0; i < chararr.length; i++) {
if (chararr[i] >= 'a' && chararr[i] <= 'z') {
score1 = 0;
score1 += 10;
}
if (chararr[i] >= 'A' && chararr[i] <= 'Z') {
score2 = 0;
score2 += 10;
}
}
return score1 + score2;
}
public static int getpassword3(char[] chararr) {
int score1 = 0;
int score2 = 0;
//是否数字
for (int i = 0; i < chararr.length; i++) {
if (chararr[i] >= '0' && chararr[i] <= '9' && score1 == 10) {
score2 = 10;
break;
}
if (chararr[i] >= '0' && chararr[i] <= '9') {
score1 += 10;
}
}
return score1 + score2;
}
public static int getpassword4(char[] chararr) {
int score1 = 0;
int score2 = 0;
//是否数字
for (int i = 0; i < chararr.length; i++) {
if (((chararr[i] >= 0x21 && chararr[i] <= 0x2F) || (chararr[i] >= 0x3A &&
chararr[i] <= 0x40) || (chararr[i] >= 0x5B && chararr[i] <= 0x60) ||
(chararr[i] >= 0x7B && chararr[i] <= 0x7E)) && score1 == 10) {
score2 += 15;
break;
}
if ((chararr[i] >= 0x21 && chararr[i] <= 0x2F) || (chararr[i] >= 0x3A &&
chararr[i] <= 0x40) || (chararr[i] >= 0x5B && chararr[i] <= 0x60) ||
(chararr[i] >= 0x7B && chararr[i] <= 0x7E)) {
score1 += 10;
}
}
return score1 + score2;
}
public static int getpassword5(char[] chararr) {
int reward=0;
if(getpassword2(chararr)>0&&getpassword3(chararr)>0){reward=2;}
if(getpassword2(chararr)>0&&getpassword3(chararr)>0&&getpassword3(chararr)>0){reward=3;}
if(getpassword2(chararr)==20&&getpassword3(chararr)>0&&getpassword3(chararr)>0){reward=5;}
return reward;
}
}
