How would I make a code that would check the password for the following and add or subtract the following points :
- the amount of characters is equal to the first amount of points
- capital letters + 5 points
- lower case letters +5 points
- digits(1-9) + 5 points for each one
- special characters(!$%^&*()_-+=) + 5 points
- only capital letter -5 points
- only lowercase letters -5 points
- only digits -5 points
- only special characters -5
- if the password contains three consecutive letters based on the layout of the UK QWERTY keyboard -5 points for each set of three.
In addition I would also like to know how to generate a random password that follows the point scoring system above and has 8-12 letters.The password would have to be classified as strong to be shared with the user.
- 20+ is strong
- 0 or less is weak
- anything else is medium
I started the program out for you. By using the
len command in python, it will return the length of the string. From there, simply use other functions such as
points = 0 # set the point value to zero password = input("Enter your password: ") length = len(password) # length of password uppers = [x for x in password if x.isupper()] # check for uppercase letters uppernum = len(uppers) # find the number of uppercase letters lowers = [x for x in password if x.islower()] # check for lowercase letters lowernum = len(lowers) # find the number of lowercase letters . . . points = points + length + (uppernum * 5) + (lowernum * 5) # add the final point total print(points) # get your answer
if statements, or logical analysis, can change how the point values are used. Instead of doing
(uppernum * 5) or
(lowernum * 5), you can do
if . . .
lowernum =+ 5.
Hope this helped!