Home >Backend Development >C++ >Strong Password Adviser
Every May 7th, organizations around the world remind users of the importance of strong passwords. According to tech giant Google;
24% of their end users use the word "password" or "Qwerty" as their account password.
Although, only 34% of users change their account passwords frequently.
In today's technologically advanced world, every login attempt is a potential cybercriminal attack. But many people today still use weak passwords on their professional and personal accounts.
Here we will discuss and check whether the password created is very weak, weak, medium, strong or very strong. To do this, we will check the criteria for creating passwords according to the requirements of the algorithm. In today's article, we will learn how to create a strong password suggester using C code.
This is a general algorithm for strong passwords. It helps developers develop password suggestion systems in a C environment and find specific criteria for passwords.
Step 1 − Start
Step 2 - The ideal password should be at least eight characters in length.
Step 3 − Must contain at least one numeric character.
Step 4 - There should be at least one lowercase letter. [Example: a, b, c...., z]
Step 5 - There should be at least one uppercase letter. [Example: A, B, C..., Z]
Step 6 − It should contain at least one special character. [Example: !@#$ %^&*()- ]
Step 7 - End
switch (k) { case 1: if ((count_alphabet == 7) && (count_number == 0 || count_ALPHABET == 0 || count_ALPHABET == 7 || count_s_symbol == 0)) break; key = getKey(); password = password + alphabet[key]; count_alphabet++; count++; break; case 2: if ((count_ALPHABET == 7) && (count_number == 0 || count_alphabet == 0 || count_alphabet == 5 || count_s_symbol == 0)) break; key = getKey(); password = password + ALPHABET[key]; count_ALPHABET++; count++; break; case 3: if ((count_number == 7) && (count_alphabet == 0 || count_alphabet == 1 || count_ALPHABET == 3 || count_ALPHABET == 0 || count_s_symbol == 0)) break; key = getKey(); key = key % 10; password = password + number[key]; count_number++; count++; break; case 4: if ((count_s_symbol == 1) && (count_alphabet == 0 || count_alphabet == 1 || count_ALPHABET == 0 || count_ALPHABET == 1 || count_number == 0)) break; key = getKey(); key = key % 6; password = password + s_symbol[key]; count_s_symbol++; count++; break; } cout << "\n-----------------------------\n"; cout << " Enter The Password \n"; cout << "------------------------------\n\n"; cout << " " << password add here; cout << "\n\n Press any key continue \n"; getchar(); }
In this syntax, the condition checks the minimum requirements for an ideal password. We divided each possible condition into four cases, checking whether the requirements for alphabetic, numeric and special symbol characters are met, and whether the minimum requirements are met. During processing, if there are any other characters left, they will be ignored.
Method 1 - Create a strong password advisory environment
Method 2 - Check if the password is strong, weak or medium
Method 3 - Check whether the password meets the conditions
In this C build code, the system will check the strength of the input data (password). It will scan the input to find all the mentioned criteria for the ideal password. If all conditions match, then it is an ideal password. Otherwise, any characters are missing from the input and it will return some randomly generated password.
The Chinese translation of#include <bits/stdc++.h> using namespace std; string add_more_char(string str, int need){ int pos = 0; string low_case = "abcdefghijklmno"; for (int a = 0; a < need; a++) { pos = rand() % str.length(); str.insert(pos, 1, low_case[rand() % 26]); } return str; } string suggester(int m, int o, int a, int d, string str) { string num = "0123456789"; string low_case = "abcdefghijklmno"; string up_case = "ABCDEFGHIJKLMNO"; string spl_char = "@#$_()!*&%#+-=.`"; int pos = 0; if (m == 0) { pos = rand() % str.length(); str.insert(pos, 1, low_case[rand() % 26]); } if (o == 0) { pos = rand() % str.length(); str.insert(pos, 1, up_case[rand() % 26]); } if (a == 0) { pos = rand() % str.length(); str.insert(pos, 1, num[rand() % 10]); } if (d == 0) { pos = rand() % str.length(); str.insert(pos, 1, spl_char[rand() % 7]); } return str; } void generate_password(int n, string p){ int l = 0, u = 0, d = 0, s = 0, need = 0; string suggest; for (int j = 0; j < n; j++) { if (p[j] >= 97 && p[j] <= 122) l = 1; else if (p[j] >= 65 && p[j] <= 90) u = 1; else if (p[j] >= 48 && p[j] <= 57) d = 1; else s = 1; } if ((l + u + d + s) == 4) { cout << "Hurra! Your Passcode Is Strong, Go Ahead!" << endl; return; } else cout << "Suggested password As Per The Input. Pick One For You! " << endl; for (int i = 0; i < 10; i++) { suggest = suggester(l, u, d, s, p); need = 8 - suggest.length(); if (need > 0) suggest = add_more_char(suggest, need); cout << suggest << endl; } } int main(){ string input_string = "abonirudra@1607"; srand(time(NULL)); generate_password(input_string.length(), input_string); return 0; }
Suggested password As Per The Input. Pick One For You! abonirudGra@1607 abConirudra@1607 abonirudra@1E607 abonirudra@16A07 abonirudra@160L7 abNonirudra@1607 aNbonirudra@1607 abonirDudra@1607 aboniruFdra@1607 abonirNudra@1607
Build code based on the above algorithm and C; encode string to check input strength. The entire method returns "Strong" as output when all conditions are met. If only the first three steps are met and the password is at least eight characters long, it will return "Medium".
The Chinese translation of#include <bits/stdc++.h> using namespace std; void printStrongNess(string& input) { int n = input.length(); bool hasLower = false, hasUpper = false; bool hasDigit = false, specialChar = false; string normalChars = "abcdefghijklmnopqrstu" "vwxyzABCDEFGHIJKL023456789 "; 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 = "Abonirudra@22052023"; printStrongNess(input); return 0; }
Strength of password:-Strong
In this code, we will perform a verification operation on a specific password. The following are the specific steps -
Accept user input.
The password combination entered by the user will now be checked.
Passwords are divided into three types: strong, medium and weak.
If all conditions are true, it will be a strong password.
Otherwise, medium or weak.
#include <bits/stdc++.h> using namespace std; void checkpassword(string& password) { int n = password.length(); bool hasLower = false, hasUpper = false, hasDigit = false; for (int i = 0; i < n; i++) { if (islower(password[i])) hasLower = true; if (isupper(password[i])) hasUpper = true; if (isdigit(password[i])) hasDigit = true; } cout << "Strength of password you have entered as per the input :-"; if ( hasUpper && hasDigit && hasLower && (n >= 6)) cout << "Strong" << endl; else if ((hasLower || hasUpper) && hasDigit && (n >=6)) cout << "Moderate" << endl; else cout << "Weak" << endl; } int main() { cout << "Welcome To The Password Tester! Let's Check Your Password. " << endl; cout << "Let's consider the average length of an ideal strong password should be more than 6 character " << endl; cout << "Please enter your desired password with :- " << endl; cout << " * at least one upper case letter and lower case letter " << endl; cout << " * and also need to have at least one digit " << endl; string password; cout <<"Enter your monermoto password"<<endl; getline(cin,password); checkpassword(password); return 0; }
Welcome To The Password Tester! Let's Check Your Password. Let's consider the average length of an ideal strong password should be more than 6 character Please enter your desired password with :- * at least one upper case letter and lower case letter * and also need to have at least one digit Enter your monermoto password Strength of password you have entered as per the input :-Weak
From this article, we learned how to create a password suggester environment using C and then how to evaluate password quality using some labels (strong, medium, weak) on that specific platform.
The above is the detailed content of Strong Password Adviser. For more information, please follow other related articles on the PHP Chinese website!