华为机试:密码强度等级

news/2024/11/25 14:49:18/

一、题目:

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

一、密码长度:

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_SECURE、SECURE,VERY_STRONG,STRONG,AVERAGE,WEAK,VERY_WEAK,
请根据输入的密码字符串,进行安全评定。

注:

字母:a-z, A-Z、数字:-9、符号包含如下: (ASCII码表可以在UltraEdit的菜单view->ASCII Table查看)、!"#$%&'()*+,-./  (ASCII码:x21~0x2F)、:;<=>?@ (ASCII<=><=><=><=><=>码:x3A~0x40)、[\]^_`(ASCII码:x5B~0x60)、{|}~  (ASCII码:x7B~0x7E)

输入描述:

本题含有多组输入样例。
每组样例输入一个string的密码

输出描述:

每组样例输出密码等级

二、输入输出示例:


三、代码:

#include<iostream>
using namespace std;
#include<string>
int main()
{string s;while(cin>>s){int res = 0;//密码长度if(s.size() <= 4){res += 5;}else if(s.size() >= 5 && s.size() <= 7){res += 10;}else{res += 25;}//字母和数字int flag1,flag2;  //flag1对应大写字母 flag2对应小写字母flag1 = flag2 = 0;int flag3 = 0;    //flag3表示数字个数int flag4 = 0;    //flag4表示符号个数for(int i=0;i<s.size();i++){if(s[i] >= 'A' && s[i] <= 'Z'){flag1 = 1;}else if(s[i] >= 'a' && s[i] <= 'z'){flag2 = 1;}else if(s[i] >= '0' && s[i] <= '9'){flag3++;}else{flag4++;}}//字母if(flag1 + flag2 == 1){res += 10;}else if(flag1 +flag2 == 2){res += 20;}//数字if(flag3 == 1){res += 10;}else if(flag3 > 1){res += 20;}//符号if(flag4 == 1){res += 10;}else if(flag4 > 1){res += 25;}//奖励if(flag1 + flag2 == 1  && flag3 != 0){res += 2;}else if(flag1 + flag2 == 1 && flag3 != 0 && flag4 != 0){res += 3;}else if(flag1 + flag2 == 2 && flag3 != 0 && flag4 != 0){res += 5;}//评分if(res >= 90){cout<<"VERY_SECURE"<<endl;}else if(res >= 80){cout<<"SECURE"<<endl;}else if(res >= 70){cout<<"VERY_STRONG"<<endl;}else if(res >= 60){cout<<"STRONG"<<endl;}else if(res >= 50){cout<<"AVERAGE"<<endl;}else if(res >= 25){cout<<"WEAK"<<endl;}else{cout<<"VERY_WEAK"<<endl;}}system("pause");return 0;
}

 


http://www.ppmy.cn/news/694471.html

相关文章

华为防火墙忘记密码,使用console口更改密码

华为防火墙忘记密码&#xff0c;使用console口更改密码 1.连接好Console线&#xff0c;确认电脑com端口。 2.打开CRT,创建连接如下图 3.连接后重启防火墙&#xff0c;直到看到提示信息“Press CtrlB to Enter Main Menu…3”时按下CtrlB&#xff0c;入BootROM密码后&#xf…

动态密码算法介绍与实现

动态密码&#xff0c;亦称一次性密码&#xff08;One Time Password, 简称 OTP&#xff09;&#xff0c;是一种高效简单又比较安全的密码生成算法&#xff0c;在我们的生活以及工作中随处可见&#xff0c;身为开发者&#xff0c;也或多或少在自己的业务系统中集成了二步验证机制…

华为设备密码重置

在终端界面上输入字符&#xff0c;如果设备可以响应串口输入字符&#xff0c;但是忘记密码无法登录。 这种情况下可以通过其他登录方式配置Console口登录或者通过BootROM菜单清除Console口登录密码&#xff0c;尝试重新登录。 1.通过其他登入方式配置console口登入 前提&…

华为设备设置console密码

配置 <AR1>SYS //进入系统视图 Enter system view, return user view with CtrlZ. [AR1]user-interface console 0 //进入console端口 [AR1]authentication-mode password //设置认证模式 [AR1-ui-console0]set authentication password cipher Qytang //设置console…

华为机试HJ87:密码强度等级

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 密码按如下规则进行计分&#xff0c;并根据不同的得分为密码进行安全等级划分。 一、密码长度: 5 分: …

linux 动态密码,Linux动态密码

关于Linux动态密码的好处就不用多说了。 我的系统的是rhel5 安装软件包&#xff1a; expect-5.43.0-5.1.i386.rpm ## RHEL5自带有 利用命令mkpasswd生成动态密码。 mkpasswd的用法&#xff1a; #mkpasswd 参数 用户名 -l 定义生成密码的长度&#xff0c;默认9 -d 定义密…

华为设备设置终端密码

文章目录 1、交换机设备2、路由器设备3、防火墙设备 1、交换机设备 进入系统视图&#xff1a;system-view修改设备名字&#xff1a;[Huawei]sysname Sw1进入console口&#xff1a;[Sw1]user-interface console 0设置密码类型&#xff1a;[Sw1-ui-console0]authentication-mode…

华为OD机试 - 猜密码(Java JS Python)

题目描述 小杨申请了一个保密柜,但是他忘记了密码。只记得密码都是数字,而且所有数字都是不重复的。 请你根据他记住的数字范围和密码的最小数字数量,帮他算下有哪些可能的组合,规则如下: 输出的组合都是从可选的数字范围中选取的,且不能重复;输出的密码数字要按照从小…