密碼強度等級(HJ87)
阿新 • • 發佈:2020-07-30
C++程式碼如下:
#include <iostream> #include <string> using namespace std; int main() { string s=""; while (getline(cin, s)) { int val = 0; int len = s.size(); if (len <= 4) { val += 5; } else if (len <= 7) { val+= 10; } else { val += 25; } int hasNum = 0; int hasAlphaS = 0; int hasAlphaL = 0; int hasCha = 0; for (char c : s) { if (c >= '0' && c <= '9') hasNum++; elseif (c >= 'a' && c <= 'z') hasAlphaS++; else if (c >= 'A' && c <= 'Z') hasAlphaL++; else hasCha++; } if (hasAlphaS == len || hasAlphaL == len) val += 10; else if (hasAlphaS > 0&& hasAlphaL > 0) val += 20; if (hasNum == 1) val += 10; else if (hasNum > 1) val += 20; if (hasCha == 1) val += 10; else if (hasCha > 1) val += 25; if (hasAlphaS > 0 && hasAlphaL > 0 && hasNum > 0 && hasCha > 0) val += 5; else if ((hasAlphaS > 0 || hasAlphaL > 0) && hasNum > 0 && hasCha > 0) val += 3; else if ((hasAlphaL > 0 || hasAlphaS > 0) && hasCha > 0) val += 2; if (val >= 90) cout << "VERY_SECURE" << endl; else if (val >= 80) cout << "SECURE" << endl; else if (val >= 70) cout << "VERY_STRONG" << endl; else if (val >= 60) cout << "STRONG" << endl; else if (val >= 50) cout << "AVERAGE" << endl; else if (val >= 25) cout << "WEAK" << endl; else cout << "VERY_WEAK" << endl; } return 0; }