Se dice que una contraseña es segura si cumple los siguientes criterios:
- Contiene al menos un carácter inglés en minúscula.
- Contiene al menos un carácter inglés en mayúsculas.
- Contiene al menos un carácter especial. Los caracteres especiales son: !@#$%^&*()-+
- Su longitud es de al menos 8.
- 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: FuerteEntrada: “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
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