加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
密码强度等级.cpp 2.28 KB
一键复制 编辑 原始数据 按行查看 历史
墨澜1024 提交于 2022-05-27 07:00 . 密码强度等级
#include<iostream>
#include<string>
using namespace std;
int score_sum(string& str)
{
int dig = 0, sym = 0;
int low = 0, up = 0, charc = 0;
int size = 0, sum = 0;
for (auto ch : str)
{
if (ch >= 'a' && ch <= 'z')
{
low++;
charc++;
}
else if (ch >= 'A' && ch <= 'Z')
{
up++;
charc++;
}
else if (ch >= '0' && ch <= '9')
{
dig++;
}
else if ((ch >= 0x21 && ch <= 0x2F)
|| (ch >= 0x3A && ch <= 0x40)
|| (ch >= 0x5B && ch <= 0x60)
|| (ch >= 0x7B && ch <= 0x7E))
{
sym++;
}
}
size = str.size();
if (size <= 4)
{
sum += 5;
}
else if (size <= 7)
{
sum += 10;
}
else
{
sum += 25;
}
if (low > 0 && up > 0)
{
sum += 20;
}
else if (low == charc || up == charc)
{
sum += 10;
}
if (dig == 1)
{
sum += 10;
}
else if (dig > 1)
{
sum += 20;
}
if (sym == 1)
{
sum += 10;
}
else if (sym > 1)
{
sum += 25;
}
if (low > 0 && up > 0 && dig > 0 && sym > 0)
{
sum += 5;
}
else if ((low > 0 || up > 0) && dig > 0 && sym > 0)
{
sum += 3;
}
else if ((low > 0 || up > 0) && dig > 0 && sym == 0)
{
sum += 2;
}
return sum;
}
int main()
{
string str;
while (cin >> str)
{
int score = score_sum(str);
if (score >= 90)
{
cout << "VERY_SECURE" << endl;
}
else if (score >= 80)
{
cout << "SECURE" << endl;
}
else if (score >= 70)
{
cout << "VERY_STRONG" << endl;
}
else if (score >= 60)
{
cout << "STRONG" << endl;
}
else if (score >= 50)
{
cout << "AVERAGE" << endl;
}
else if (score >= 25)
{
cout << "WEAK" << endl;
}
else if (score >= 0)
{
cout << "VERY_WEAK" << endl;
}
}
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化