用C ++检查密码强度的程序
给定包含密码字符的字符串输入,任务是检查密码的强度。
密码的强度是当您告诉您密码是容易猜到还是被破解时。强度应从弱,中等和强到不同。要检查强度,我们必须检查以下几点:
密码长度必须至少为8个字符。
它必须包含1小写字母。
它必须包含1大写字母
它必须包含一个数字
它必须包含一个特殊字符,例如:!@#$%^&*()> <,。+ =-
就像有一个密码“ nhooo”很容易猜到一样,因此我们可以断定他给出的密码“弱”,因为它只包含小写字符,而密码“ Nhooo @ 863!” 既具有大写和小写字母,数字和特殊字符,又具有强壮性,并且长度大于8个字符,因此满足使密码更强的所有条件。
如果有一些密码满足强密码的一半以上的特征,那么我们将认为该密码是中等密码。就像密码“ nhooo12”一样,它将被认为是中等程度的,因为包含小写字母,一个数字并且其长度大于8个字符。
示例
Input: nhooo!@12Output:密码强度:-Strong
Explanation: Password has 1 lowercase, 1 uppercase, 1 special character, more than 8 characters long and a digit, hence the password is span.
Input: nhooo
Output:密码强度:-Weak
我们将用来解决给定问题的方法-
将字符串输出作为密码。
检查密码中是否有所有因素可以判断密码强度。
根据因素打印密码的强度。
算法
StartStep 1 ⇒ In function void printStrongNess(string& input)
Declare and initialize n = input.length()
Declare bool hasLower = false, hasUpper = false
Declare bool hasDigit = false, specialChar = false
Declare string normalChars = "abcdefghijklmnopqrstu"
"vwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 "
Loop For i = 0 and i < n and i++
If (islower(input[i]))
Set hasLower = true
If (isupper(input[i]))
Set hasUpper = true
If (isdigit(input[i]))
Set hasDigit = true
Set size_t special = input.find_first_not_of(normalChars)
If (special != string::npos)
Set specialChar = true
End Loop
Print "Strength of password:-"
If (hasLower && hasUpper && hasDigit &&
specialChar && (n >= 8))
Print "Strong"
else if ((hasLower || hasUpper) &&
specialChar && (n >= 6))
Print "Moderate"
else
print "Weak"
Step 2 ⇒ In function int main() Declare and initialize input = "nhooo!@12"
printStrongNess(input)
Stop
示例
#include <iostream>using namespace std;
void printStrongNess(string& input) {
int n = input.length();
//检查字符串中的低位字母
bool hasLower = false, hasUpper = false;
bool hasDigit = false, specialChar = false;
string normalChars = "abcdefghijklmnopqrstu" "vwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ";
for (int i = 0; i < n; i++) {
if (islower(input[i]))
hasLower = true;
if (isupper(input[i]))
hasUpper = true;
if (isdigit(input[i]))
hasDigit = true;
size_t special = input.find_first_not_of(normalChars);
if (special != string::npos)
specialChar = true;
}
//密码强度
cout << "Strength of password:-";
if (hasLower && hasUpper && hasDigit &&
specialChar && (n >= 8))
cout << "Strong" << endl;
else if ((hasLower || hasUpper) &&
specialChar && (n >= 6))
cout << "Moderate" << endl;
else
cout << "Weak" << endl;
}
int main() {
string input = "nhooo!@12";
printStrongNess(input);
return 0;
}
输出结果
Strength of password:-Moderate
以上是 用C ++检查密码强度的程序 的全部内容, 来源链接: utcz.com/z/338482.html