In this tutorial, I will explain how to validate passwords in Python. As a Python developer working on a project for one of our USA clients, I came across a scenario where I needed to validate passwords when dealing with user registration to make the application more secure. I will help you to learn different methods to validate passwords effectively with examples.
Methods to Validate Passwords in Python
In this article, we’ll explore various methods to check if a given string is a valid password in Python.
Method 1: Use Regular Expressions
One effective way to validate passwords in Python is by using regular expressions (regex). Regex allows you to define a pattern that the password must match. Here’s an example:
import re
def validate_password(password):
pattern = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$"
return re.match(pattern, password) is not None
print(validate_password("Passw0rd!"))Output:
TrueI have executed the above example code and added the screenshot below.

This code uses a function that checks if a given password satisfies certain conditions defined by the regex pattern:
(?=.*?[A-Z]): At least one uppercase letter(?=.*?[a-z]): At least one lowercase letter(?=.*?[0-9]): At least one digit(?=.*?[#?!@$%^&*-]): At least one special character.{8,}: Minimum 8 characters long
If the password matches the pattern, the function returns True , indicating a valid password. Otherwise, it returns False.
Read How to Use the round() Function in Python?
Method 2: Custom Validation Function
Another approach is to write a custom function that checks each condition separately:
def validate_password(password):
if len(password) < 8:
return False
if not any(char.isupper() for char in password):
return False
if not any(char.islower() for char in password):
return False
if not any(char.isdigit() for char in password):
return False
special_chars = "#?!@$%^&*-"
if not any(char in special_chars for char in password):
return False
return True
print(validate_password("P@ssword"))Output:
FalseI have executed the above example code and added the screenshot below.

This function checks if the password meets the following criteria:
- Minimum length of 8 characters
- Contains at least one uppercase letter
- Contains at least one lowercase letter
- Contains at least one digit
- Contains at least one special character from the set
"#?!@$%^&*-"
If the password fails any of these checks, the function returns False. If it passes all checks, it returns True.
Check out How to Use the Floor() Function in Python?
Method 3: Use the passlib Library
Python’s passlib library provides a convenient way to handle password hashing and validation. Here’s an example:
from passlib.hash import pbkdf2_sha256
def validate_password(password):
return pbkdf2_sha256.verify(password, pbkdf2_sha256.hash(password))This code uses the pbkdf2_sha256 algorithm from passlib to hash the password and then verify if the password matches its hashed value. If the verification succeeds, the function returns True , indicating a valid password.
Read How to Use Built-In Functions in Python?
Examples
Here are some examples of using the password validation functions:
password1 = "Str0ngP@ssw0rd"
password2 = "weakpass"
print(validate_password(password1))
print(validate_password(password2))Output:
True
FalseIn this example, password1 meets all the criteria for a strong password, so it returns True, while password2 is considered weak and returns False.
Check out How to Use the find() Function in Python?
Conclusion
In this tutorial, I discussed how to validate passwords in Python, We discussed various methods to validate passwords in Python like using regular expressions, custom validation functions, or libraries like passlib with examples.
You may also like to read:
- How to Use Counter Function in Python?
- How to Use Exponential Functions in Python?
- How to Create a Square Function in Python?

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.