Programa para comprobar la fuerza de la contraseña

Se dice que una contraseña es segura si cumple los siguientes criterios: 

  1. Contiene al menos un carácter inglés en minúscula.
  2. Contiene al menos un carácter inglés en mayúsculas.
  3. Contiene al menos un carácter especial. Los caracteres especiales son: !@#$%^&*()-+
  4. Su longitud es de al menos 8.
  5. Contiene al menos un dígito.

Dada una cuerda, encuentre su fuerza. Deje que una contraseña segura sea aquella que satisfaga todas las condiciones anteriores. Una contraseña moderada es aquella que cumple las tres primeras condiciones y tiene una longitud de al menos 6. De lo contrario, la contraseña es semana.

Ejemplos: 

Entrada: “GeeksforGeeks!@12”
Salida: Fuerte

Entrada: “gfg!@12”
Salida: Moderada

Implementación:

C++

// C++ program to check if a given password is
// strong or not.
#include <bits/stdc++.h>
using namespace std;
 
void printStrongNess(string& input)
{
    int n = input.length();
 
    // Checking lower alphabet in string
    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;
    }
 
    // Strength of password
    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;
}
 
// Driver code
int main()
{
    string input = "GeeksforGeeks!@12";
    printStrongNess(input);
    return 0;
}

Java

// Java implementation for the above approach
import java.io.*;
import java.util.*;
 
class GFG {
   
   
    public static void printStrongNess(String input)
    {
        // Checking lower alphabet in string
        int n = input.length();
        boolean hasLower = false, hasUpper = false,
                hasDigit = false, specialChar = false;
        Set<Character> set = new HashSet<Character>(
            Arrays.asList('!', '@', '#', '$', '%', '^', '&',
                          '*', '(', ')', '-', '+'));
        for (char i : input.toCharArray())
        {
            if (Character.isLowerCase(i))
                hasLower = true;
            if (Character.isUpperCase(i))
                hasUpper = true;
            if (Character.isDigit(i))
                hasDigit = true;
            if (set.contains(i))
                specialChar = true;
        }
       
        // Strength of password
        System.out.print("Strength of password:- ");
        if (hasDigit && hasLower && hasUpper && specialChar
            && (n >= 8))
            System.out.print(" Strong");
        else if ((hasLower || hasUpper || specialChar)
                 && (n >= 6))
            System.out.print(" Moderate");
        else
            System.out.print(" Weak");
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        String input = "GeeksforGeeks!@12";
        printStrongNess(input);
    }
 
     
}
// contributed by Ashish Chhabra

Python3

# Python3 program to check if a given
# password is strong or not.
def printStrongNess(input_string):
     
    n = len(input_string)
 
    # Checking lower alphabet in string
    hasLower = False
    hasUpper = False
    hasDigit = False
    specialChar = False
    normalChars = "abcdefghijklmnopqrstu"
    "vwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 "
     
    for i in range(n):
        if input_string[i].islower():
            hasLower = True
        if input_string[i].isupper():
            hasUpper = True
        if input_string[i].isdigit():
            hasDigit = True
        if input_string[i] not in normalChars:
            specialChar = True
 
    # Strength of password
    print("Strength of password:-", end = "")
    if (hasLower and hasUpper and
        hasDigit and specialChar and n >= 8):
        print("Strong")
         
    elif ((hasLower or hasUpper) and
          specialChar and n >= 6):
        print("Moderate")
    else:
        print("Weak")
 
# Driver code
if __name__=="__main__":
     
    input_string = "GeeksforGeeks!@12"
     
    printStrongNess(input_string)
 
# This code is contributed by Yash_R
Producción

Strength of password:-Strong

Complejidad temporal: O(n)
Espacio auxiliar: O(1)

Este artículo es una contribución de Apurva Agarwal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.  

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *