一、密码长度:
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: 非常弱
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
对应输出为:
VERY_SECURE
SECURE
VERY_STRONG
STRONG
AVERAGE
WEAK
VERY_WEAK
#include<stdio.h>
#include
#include
using namespace std;
class PassworldStr {
public:
int Alllength = 0;
void creat(const string& s1) {
int num = 0;//存储数字数量
int cha = 0;//存储字母数量
int cha1 = 0;//存储大写字母数量
int cha2 = 0;//存储小写字母数量
int sym = 0;//存储符号数量
int Length = s1.length();
if (Length <= 4) Alllength += 5;
if (Length >= 5 && Length <= 7) Alllength += 10;
if (Length >= 8) Alllength += 25;
for (int i = 0; i < Length; i++) {
if (s1[i] >= 48 && s1[i] <= 57) ++num;
if (s1[i] >= 65 && s1[i] <= 90) {
++cha1;
}
if (s1[i] >= 97 && s1[i] <= 122) {
++cha2;
}
if (s1[i] >= 33 && s1[i] <= 47
|| (s1[i] >= 58 && s1[i] <= 64)
|| (s1[i] >= 91 && s1[i] <= 96)
|| (s1[i] >= 123 && s1[i] <= 126))
++sym;
}
cha = cha1 + cha2;
if (num == 0);
if (num == 1) Alllength+=10;
if (num > 1) Alllength += 20;
if (cha == 0);
if (cha1 == Length || cha2 == Length) Alllength += 10;
if (cha1 > 0 && cha1 < Length - 1 && cha2>0 && cha2 < Length - 1) Alllength += 20;
if (sym == 0);
if (sym == 1) Alllength == 10;
if (sym > 1) Alllength += 25;
if (num + cha == Length) Alllength += 2;
if (num + cha+sym == Length) Alllength += 3;
if (cha1 != Length && cha2 != Length && (cha1 + cha2 + num + sym == Length)) Alllength += 5;
CheckString(Alllength);
}
int CheckString(int Allength) {
if (Allength >= 90) {
cout << “VERY_SECURE”<<endl;
return 0;
}
if (Allength >= 80) {
cout << “SECURE” << endl;
return 0;
}
if (Allength >= 70) {
cout << “VERY_STRONG”<<endl;
return 0;
}
if (Allength >= 60) {
cout << “STRONG”<<endl;
return 0;
}
if (Allength >= 50) {
cout << “AVERAGE”<<endl;
return 0;
}
if (Allength >= 25) {
cout << “WEAK”<<endl;
return 0;
}
else{
cout << “VERY_WEAK”<<endl;
return 0;
}
}
};
int main() {
PassworldStr p1;
string s1;
while (cin >> s1) {
p1.creat(s1);
}
return 0;
}