English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Donné une chaîne d'entrée de caractères contenant les caractères du mot de passe, la tâche est de vérifier la force du mot de passe.
La force du mot de passe est déterminée par la facilité avec laquelle il est deviné ou déchiffré. La force doit être évaluée de faiblesse, moyenne et forte à différentes échelles. Pour vérifier la force, nous devons vérifier les points suivants :
La longueur du mot de passe doit être au moins8caractères.
Il doit contenir1lettre minuscule.
Il doit contenir1lettre majuscule
Il doit contenir un chiffre
Il doit contenir un caractère spécial, par exemple : !@#$%^&*> <,。+ =-
comme il y a un mot de passe “w3codebox” est facile à deviner, donc nous pouvons affirmer que le mot de passe qu'il a donné “faible”, car il ne contient que des lettres minuscules, tandis que le mot de passe “w3codebox @ 863!” a à la fois des lettres majuscules et minuscules, des chiffres et des caractères spéciaux, et est fort, et sa longueur est supérieure à8caractères, par conséquent, ils répondent à toutes les conditions pour rendre le mot de passe plus fort.
Si certains mots de passe répondent à plus de la moitié des caractéristiques d'un mot de passe fort, alors nous considérerons que ce mot de passe est de niveau moyen. Comme le mot de passe “w3codebox12” est considéré comme de niveau moyen, car il contient des lettres minuscules, un chiffre et une longueur supérieure à8caractères.
Entrée : w3codebox!@12 Sortie : Force du mot de passe :-Fort Explication : Le mot de passe a 1 minuscule, 1 majuscule, 1 caractère spécial, plus de 8 caractères longs et un chiffre, donc le mot de passe est fort. Entrée : w3codebox Sortie : Force du mot de passe :-Faible
Nous allons utiliser la méthode pour résoudre le problème donné-
Sortir la chaîne de caractères en tant que mot de passe.
Vérifier si le mot de passe contient tous les facteurs pour juger de la force du mot de passe.
Imprimer la force du mot de passe en fonction des facteurs.
Début Étape 1 ⇒ Dans la fonction void printStrongNess(string& input) Déclarer et initialiser n = input.length() Déclarer bool hasLower = false, hasUpper = false Déclarer bool hasDigit = false, specialChar = false Déclarer string normalChars = "abcdefghijklmnopqrstu" "vwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"1234567890 " Boucle Pour i = 0 et i < n et i++ Si (islower(input[i])) Définir hasLower = true Si (isupper(input[i])) Définir hasUpper = true Si (isdigit(input[i])) Définir hasDigit = true Définir size_t special = input.find_first_not_of(normalChars) Si (special != string::npos) Définir specialChar = true Fin Boucle Imprimez "Force du mot de passe :"-" Si (hasLower && hasUpper && hasDigit && specialChar && (n >= 8)) Imprimez "Fort" else if ((hasLower || hasUpper) && specialChar && (n >= 6)) Imprimez "Moyen" else print "Faible" Étape 2 ⇒ Dans la fonction int main() Declare et initialise input = "w"3codebox!@12" printStrength(input) Arrêt
#include <iostream> using namespace std; void printStrength(string& input) { int n = input.length(); //Vérifier les lettres minuscules dans la chaîne bool hasLower = false, hasUpper = false; bool hasDigit = false, specialChar = false; string normalChars = "abcdefghijklmnopqrstu" "vwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"1234567890 ";}} 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; } //Password strength cout << "Password strength:"-"; 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 = "w3codebox!@12"; printStrengthNess(input); return 0; }
Output result
Password strength:-Moderate