盛大游戏 密码安全等级 模拟
题目描述
现公司要开发一个业务管理系统,要求注册环节的密码需要提示用户其安全等级,密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。
一、密码长度:
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: 安全
大于等于70: 非常强
大于等于 60: 强
大于等于 50: 一般
大于等于 25: 弱
大于等于0: 非常弱
对应输出为:
VERY_WEAK,
WEAK,
AVERAGE,
STRONG,
VERY_STRONG,
SECURE,
VERY_SECURE
输入描述:
输入一个自定义密码
输出描述:
输出对应安全等级
示例1
输入
dgsayd$%12
输出
SECURE
#include<iostream>
#include<algorithm>
using namespace std;
int s;
void check1(string str)
{
if(str.length()>=8)
{
s+=25;
}else if(str.length()>4)
{
s+=10;
}else
{
s+=5;
}
}
void check2(string str)
{
int len=str.length();
int flag=0;
for(int i=0;i<len;++i)
{
if(str[i]>'a' && str[i]<'z')
{
flag++;
break;
}
}
for(int i=0;i<len;++i)
{
if(str[i]>'A' && str[i]<'Z')
{
flag++;
break;
}
}
if(flag==1)
{
s+=10;
}else if(flag==2)
{
s+=20;
}
}
void check3(string str)
{
int len=str.length();
int flag=0;
for(int i=0;i<len;++i)
{
if(str[i]>'0' && str[i]<'9')
{
flag++;
}
}
if(flag==1)
{
s+=10;
}else if(flag>1)
{
s+=20;
}
}
void check4(string str)
{
int len=str.length();
int flag=0;
for(int i=0;i<len;++i)
{
if( !( (str[i]>='0'&&str[i]<='9') || (str[i]>='a'&&str[i]<='z') || (str[i]>='A'&&str[i]<='Z') ) )
{
flag++;
}
}
if(flag==1)
{
s+=10;
}else if(flag>1)
{
s+=25;
}
}
void check5(string str)
{
int len=str.length();
int flag1=0,flag2=0,flag3=0,flag4=0;
for(int i=0;i<len;++i)
{
if(str[i]>='0' && str[i]<='9')
{
flag1=1;
}
if(str[i]>='a' && str[i]<='z')
{
flag2=1;
}
if(str[i]>='A' && str[i]<='Z')
{
flag3=1;
}
if( !( (str[i]>='0'&&str[i]<='9') || (str[i]>='a'&&str[i]<='z') || (str[i]>='A'&&str[i]<='Z') ) )
{
flag4=1;
}
}
if(flag2 && flag3 && flag4 && flag1)
{
s+=5;
}else if((flag2 || flag3) && flag1 && flag4)
{
s+=3;
}else if((flag2 || flag3) && flag1)
{
s+=2;
}
}
int main()
{
string str;
cin>>str;
s=0;
check1(str);
check2(str);
check3(str);
check4(str);
check5(str);
//cout<<s<<endl;
if(s>=90)
{
cout<<"VERY_SECURE"<<endl;
}else if(s>=80)
{
cout<<"SECURE"<<endl;
}else if(s>=70)
{
cout<<"VERY_STRONG"<<endl;
}else if(s>=60)
{
cout<<"STRONG"<<endl;
}else if(s>=50)
{
cout<<"AVERAGE"<<endl;
}else if(s>=25)
{
cout<<"WEAK"<<endl;
}else if(s>=0)
{
cout<<"VERY_WEAK"<<endl;
}
return 0;
}