题解 | #密码强度等级#

密码强度等级

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;
    }

}

全部评论

相关推荐

身边有人上海、深圳&nbsp;6、7k&nbsp;都去了,真就带薪上班了。
程序员小白条:木的办法, 以后越来越差,还是家附近宅着吧,毕业的人越来越多,岗位都提供不出来,经济又过了人口红利期
点赞 评论 收藏
分享
人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务