Python Cyber Security - Check and print valid passwords from a file

Python Cyber Security: Exercise-5 with Solution

Write a Python program that reads a file containing a list of passwords, one per line. It checks each password to see if it meets certain requirements (e.g. at least 8 characters, contains both uppercase and lowercase letters, and at least one number and one special character). Passwords that satisfy the requirements should be printed by the program.



Sample Solution:

Python Code:

import re
def check_password(password):
    # Define regular expressions for each requirement
    length_regex = re.compile(r'^.{8,}$')
    uppercase_regex = re.compile(r'[A-Z]')
    lowercase_regex = re.compile(r'[a-z]')
    digit_regex = re.compile(r'\d')
    special_regex = re.compile(r'[\W_]')
    # Check if password meets each requirement
    length_check = length_regex.search(password)
    uppercase_check = uppercase_regex.search(password)
    lowercase_check = lowercase_regex.search(password)
    digit_check = digit_regex.search(password)
    special_check = special_regex.search(password)
    # Return True if all requirements are met, False otherwise
    if length_check and uppercase_check and lowercase_check and digit_check and special_check:
        return True
        return False

# Open file containing passwords
with open('passwords.txt') as f:
    # Read each password from file and check if it meets requirements
    for password in f:
        password = password.strip()  # Remove newline character
        if check_password(password):
            print("Valid Password: "+password)
            print("Invalid Password: "+password)

Sample Output:

Valid Password: Pas1$Ku1
Invalid Password: password
Invalid Password: password123
Invalid Password: password123$
Valid Password: Password6#(%
Valid Password: Germany#12
Invalid Password: USA12^$#
Valid Password: England0#


Flowchart: Check and print valid passwords from a file

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Function to suggest character substitutions for stronger passwords.
Next: Check if passwords in a list have been leaked in data breaches.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

Follow us on Facebook and Twitter for latest update.