diff --git a/src/passwordler/decrypt_password.py b/src/passwordler/decrypt_password.py index 9b33309..0a8ac87 100644 --- a/src/passwordler/decrypt_password.py +++ b/src/passwordler/decrypt_password.py @@ -47,9 +47,11 @@ def decrypt_password(encrypted_password, random_seed = 123): decryption = original.copy() random.shuffle(decryption) + # generate a key map for decryption keyMap = getKeyMap(decryption, isDecryption=True) decrypted_pass = [] + # decrypt password with key map for character in encrypted_password: if character in keyMap: decrypted_pass.append(keyMap[character]) diff --git a/src/passwordler/encrypt_password.py b/src/passwordler/encrypt_password.py index 2195d69..700665b 100644 --- a/src/passwordler/encrypt_password.py +++ b/src/passwordler/encrypt_password.py @@ -46,9 +46,11 @@ def encrypt_password(password, random_seed=123): encryption = original.copy() random.shuffle(encryption) + # generate a key map for encryption keyMap = getKeyMap(encryption) encrypted_pass = [] + # encrypt password with key map for character in password: if character in original: encrypted_pass.append(keyMap[character]) diff --git a/src/passwordler/password_strength.py b/src/passwordler/password_strength.py index 8db2361..65775a4 100644 --- a/src/passwordler/password_strength.py +++ b/src/passwordler/password_strength.py @@ -26,6 +26,7 @@ def password_strength(password): elif password == '': raise ValueError("'password' cannot be an empty string") + # collect information on the password count_uppercase = len(re.findall("[A-Z]", password)) count_numbers = len(re.findall('[0-9]', password)) count_special_chars = len(re.findall('[!-/:-@\\[-`{-~]', password)) @@ -34,10 +35,14 @@ def password_strength(password): 'baseball', 'dragon', 'football', '1234567', 'monkey', 'letmein', 'abc123', '111111', 'mustang', 'access', 'shadow', 'master', 'michael', 'superman', '696969', '123123', 'batman', 'trustno1'] - + + # conditions for strong password if length >= 12 and count_uppercase >= 1 and count_numbers >= 1 and count_special_chars >= 1 and password not in common_passwords: return 'Your password is: Strong' + + # conditions for good password elif length >= 8 and (count_uppercase + count_numbers + count_special_chars) >= 2 and password not in common_passwords: return 'Your password is: Good' + else: return 'Your password is: Weak' \ No newline at end of file