Situatie
Given a password, we have to categorize it as a strong or weak one. There are some checks that need to be met to be a strong password. For a weak password, we need to return the reason for it to be weak.
Conditions to be fulfilled are:
- Minimum 9 characters and maximum 20 characters.
- Cannot be a newline or a space
- There should not be three or more repeating characters in a row.
- The same string pattern(minimum of two character length) should not be repeating.
Backup
Examples:
Input1 : Qggf!@ghf3 Output1 : Strong Password! Input2 : aaabnil1gu Output2 : Weak Password: Same character repeats three or more times in a row Input3 : Geeksforgeeks Output3 : Weak Password: Same character repeats three or more times in a row Input4 : Aasd!feasnm Output4 : Weak password: Same string pattern repetition Input5 : 772*hdf77 Output5 : Weak password: Same string pattern repetition Input6 : " " Output6 : Password cannot be a newline or space!
Solutie
import re # Function to categorize passworddef password(v): # the password should not be a # newline or space if v == "\n" or v == " ": return "Password cannot be a newline or space!" # the password length should be in # between 9 and 20 if 9 <= len(v) <= 20: # checks for occurrence of a character # three or more times in a row if re.search(r'(.)\1\1', v): return "Weak Password: Same character repeats three or more times in a row" # checks for occurrence of same string # pattern( minimum of two character length) # repeating if re.search(r'(..)(.*?)\1', v): return "Weak password: Same string pattern repetition" else: return "Strong Password!" else: return "Password length must be 9-20 characters!" # Main methoddef main(): # Driver code print(password("Qggf!@ghf3")) print(password("Gggksforgeeks")) print(password("aaabnil1gu")) print(password("Aasd!feasn")) print(password("772*hd897")) print(password(" ")) # Driver Codeif __name__ == '__main__': main()Output:
Strong Password!
Weak password: Same string pattern repetition
Weak Password: Same character repeats three or more times in a row
Strong Password!
Strong Password!
Password cannot be a newline or space!
Leave A Comment?