How to validate a password in Python

Python String

In this post, we are going to learn how to validate a password in Python. Programmers need to validate the password is valid or not. When a user creates a new account and enters a password or a user try to log in, it comes into the picture. The string that the user enters, needs validation on certain parameters. So we will be setting some password criteria and then we will be validating the password string if it is a valid input or not.

Rules to set a Valid password are :


  • It should be a minimum of 8 characters.
  • The characters must be between a to z
  • Minimum one character should be of Upper Case between A to Z
  • Minimum one number between 0 to 9
  • Minimum one At special character from [ _ or @ or $ or ! or # or % or & or * ].

To implement this program we will be using regular expression in Python. Let us begin:

1.Using Regular Expression To validate a Password


In this code example, as we had mentioned the password will be validated and if it fulfills all the above points it will be accepted as a valid password. So we are implementing all the above points by code one by one.

Program to Validate a Password in Python

# importing regular expression

import re
inputpassword = "Sa#c1hin%" 
validity = 0 

while True: 
 if (len(inputpassword)<8):
     validity = -1 
     break 
 elif not re.search("[a-z]", inputpassword): 
    validity = -1 
    break
 elif not re.search("[A-Z]", inputpassword): 
    validity = -1
    break
 elif not re.search("[0-9]", inputpassword): 
    validity = -1 
    break
 elif not re.search("[@$!#%&]", inputpassword):
   validity = -1
   break
 elif re.search("\s", inputpassword):
  validity = -1
  break
 else:
  validity = 0
  print("Password ia Valid")
  break
if validity ==-1:
 print("Password is Invalid")

Output

Password is Valid

2. Custom function To validate a Password

In this example, we wrote a custom logic to validate a password in Python

Program Example

lowercase, uppercase, specialchar, number = 0, 0, 0, 0
inputpassword = "S*a#_c1hin%"

if (len(inputpassword) >= 8):
 for i in inputpassword:    
# counting lowercase alphabets  
    if (i.islower()): 
        lowercase+=1            

    # counting uppercase alphabets 
    if (i.isupper()): 
        uppercase+=1            

    # counting digits 
    if (i.isdigit()): 
        number+=1            

    # counting the mentioned special characters 
    if(i=='@'or i=='$' or i=='_' or i == '!' or i == '#' or i == '%' or i == '&' or i == '*' ): 
        specialchar+=1 
if (lowercase>=1 and uppercase>=1 and specialchar>=1 and number>=1 and lowercase+specialchar+uppercase+number==len(inputpassword)):
 print("Password is Valid")
else:
 print("Password is Invalid")   

Output

Password is Valid

Conclusion

In this article, we learned the techniques about the verification of passwords that can help us to verify the password string which is entered by the user. This is one of the most important use cases where we need to verify passwords.

We hope you enjoyed this article!!