English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

En C ++Programme pour vérifier la force du mot de passe

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.

Exemple

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.

Algorithme

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

Exemple

#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