每日一题系列:密码按如下规则进行计分,并根据不同的得分为密码安全等级划分

密码按如下规则进行计分,并根据不同的得分为密码安全等级划分

一、密码长度
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");
        }

    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

劲夫学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值