题目描述

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

  • 一、密码长度:

    5 分: 小于等于4 个字符
    10 分: 5 到7 字符
    25 分: 大于等于8 个字符

  • 二、字母:

    0 分: 没有字母
    10 分: 全都是小(大)写字母
    20 分: 大小写混合字母

  • 三、数字:

    0 分: 没有数字
    10 分: 1 个数字
    20 分: 大于1 个数字

  • 四、符号:

    0 分: 没有符号
    10 分: 1 个符号
    25 分: 大于1 个符号

  • 五、奖励:

    2 分: 字母和数字
    3 分: 字母、数字和符号
    5 分: 大小写字母、数字和符号

  • 最后的评分标准:

    = 90: 非常安全
    = 80: 安全(Secure)
    = 70: 非常强
    = 60: 强(Strong)
    = 50: 一般(Average)
    = 25: 弱(Weak)
    = 0: 非常弱
    对应输出为:
    VERY_WEAK,
    WEAK,
    AVERAGE,
    STRONG,
    VERY_STRONG,
    SECURE,
    VERY_SECURE

    请根据输入的密码字符串,进行安全评定。
    注:
    字母:a-z, A-Z
    数字:-9
    符号包含如下: (ASCII码表可以在UltraEdit的菜单view->ASCII Table查看)
    !”#$%&’()*+,-./ (ASCII码:x21~0x2F)
    :;<=>?@ (ASCII<=><=><=><=><=>码:x3A~0x40)
    []^_` (ASCII码:x5B~0x60)
    {|}~ (ASCII码:x7B~0x7E)

  • 输入描述:
    输入一个string的密码

  • 输出描述:
    输出密码等级

  • 示例1
    输入
      38$@NoNoNo
    输出
      VERY_SECURE

实现代码:

package cn.c_shuang.demo82;import java.util.Scanner;
/*** 密码强度等级* @author Cshuang**/
public class Main {public static void main(String[] args){Scanner in=new Scanner(System.in);while(in.hasNext()){String pwd=in.next();int score=getScore(pwd);if(score>=90){System.out.println("VERY_SECURE");}else if(score>=80){System.out.println("SECURE");}else if(score>=70){System.out.println("VERY_STRONG");}else if(score>=60){System.out.println("STRONG");}else if(score>=50){System.out.println("AVERAGE");}else if(score>=25){System.out.println("WEAK");}else if(score>=0){System.out.println("VERY_WEAK");}}in.close();}public static int getScore(String pwd){char[] chs=pwd.toCharArray();int a=0;//数字个数int b=0;//符号个数int c=0;//大写字母个数int d=0;//小写字母个数int sum=0;for(int i=0;i<chs.length;i++){if(Character.isDigit(chs[i])){a++;}else if(Character.isUpperCase(chs[i])){c++;}else if(Character.isLowerCase(chs[i])){d++;}else{b++;}}if(chs.length<=4){sum+=5;}else if(chs.length>=5&&chs.length<=7){sum+=10;}else if(chs.length>=8){sum+=25;}if((c>0&&d==0)||(c==0&&d>0)){sum+=10;}else if(c>0&&d>0){sum+=20;}if(a==1){sum+=10;}else if(a>1){sum+=20;}if(b==1){sum+=10;}else if(b>1){sum+=25;}if((c+d>0)&&(a>0)&&(b==0)){sum+=2;}else if((c+d>0)&&(a>0)&&(b>0)){sum+=3;}else if((c>0)&&(d>0)&&(a>0)&&(b>0)){sum+=5;}return sum;}
}

华为OJ——密码强度等级相关推荐

  1. 华为OJ(密码强度等级)

    题目:密码强度等级 描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二 ...

  2. 【华为OJ】【086-密码强度等级】

    [华为OJ][算法总篇章] [华为OJ][086-密码强度等级] [工程下载] 题目描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度:5 分: 小于等于4 个字符1 ...

  3. 华为机试:密码强度等级、百钱买百鸡问题

    1.密码强度等级 题目描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 ...

  4. 【字符串2】(删除公共字符、合法括号序列判断、两种排序方法、密码强度等级)

    字符串题集 1. 删除公共字符 题目描述 题目分析 C++代码 2. 合法括号序列判断 题目描述 题目分析 C++代码 3. 两种排序方法 题目描述 题目分析 C++代码 4. 密码强度等级 题目描述 ...

  5. 循环相乘取整法C语言,华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)...

    题目描述: 输出两个不超过100位的大整数的乘积. 输入: 输入两个大整数,如1234567 123 输出: 输出乘积,如:151851741 样例输入: 1234567 123 样例输出: 1518 ...

  6. 【华为OJ】【042-矩阵乘法】

    [华为OJ][算法总篇章] [华为OJ][042-矩阵乘法] [工程下载] 题目描述 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C. 这个矩阵的每个元 ...

  7. 【算法刷题日记之本手篇】井字棋与密码强度等级

    ⭐️前面的话⭐️ 本篇文章介绍来自牛客试题广场的两道题题解,分别为[井字棋]和[密码强度等级],展示语言java.

  8. 华为解锁密码忘了怎么办用计算机,不记得手机锁屏密码怎么办_华为手机密码忘了的解决方法-系统城...

    日常使用手机时,为了让手机里的信息更加的安全,很多用户都会给手机设置锁屏密码.不过近日有使用华为手机的网友却遇到了不记得手机锁屏密码的情况,不清楚怎么办,所以今天本文为大家分享的就是关于华为手机密码忘 ...

  9. 【华为OJ】【067-求最小公倍数】

    [华为OJ][算法总篇章] [华为OJ][067-求最小公倍数] [工程下载] 题目描述 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数. ...

最新文章

  1. mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法
  2. TestNG 入门教程
  3. Visual C++——设置光标Cursor
  4. 网站鼠标禁止右键的解开方法
  5. USACO Training Section 1.2 挤牛奶Milking Cows
  6. Node.js Up and Runing 学习日记(八)
  7. 云图说|ASM灰度发布,让服务发布变得更敏捷、更安全
  8. 今日恐慌与贪婪指数为91 贪婪程度与昨日持平
  9. [教程] 康盛创想 Windows (server 2003) 服务器部署标准 白丁简明版
  10. 计算机等级考试一级宝典,计算机等级考试一级通关宝典.doc
  11. 力软敏捷开发框架源码7.0.6旗舰版 JNPF开发平台3.3.3 3.4.1企业版/旗舰版框架
  12. 百度云高速下载的两种方法
  13. Vivado ML 2021.1 安装包下载
  14. 【No buffer space available】异常解决
  15. Prometheus监控 Blackbox_exporter黑盒监测
  16. UML建模之用例图(重点讲extend和include关系)
  17. 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)
  18. TVS 管选型与 ESD 防护设计
  19. spss分析方法-对应分析(转载)
  20. 使用 JS 实现七彩雨

热门文章

  1. JAVA社交平台项目第三天 即时通讯和接口加密
  2. python监听udp端口,Python和UDP监听
  3. linux的ls命令没反应,Linux:ls命令如何使用
  4. win10 重置子系统ubuntu
  5. Matlab实现图像融合,将人物融合到风景图中
  6. 手机私有充电协议解读
  7. 短信验证发送-调用聚合第三方数据平台
  8. centos 8.1.1911国内下载地址
  9. 9001认证体系证书查询,iso9001证书编号在哪里?
  10. java计算机毕业设计快递物流管理源程序+mysql+系统+lw文档+远程调试