mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-30 16:31:08 +00:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
|
# This Will Check Whether A Given Password Is Strong Or Not
|
||
|
# It Follows The Rule that Length Of Password Should Be At Least 8 Characters
|
||
|
# And At Least 1 Lower, 1 Upper, 1 Number And 1 Special Character
|
||
|
|
||
|
from string import ascii_lowercase, ascii_uppercase, digits, punctuation
|
||
|
|
||
|
|
||
|
def strong_password_detector(password: str, min_length: int = 8) -> str:
|
||
|
"""
|
||
|
>>> strong_password_detector('Hwea7$2!')
|
||
|
'This is a strong Password'
|
||
|
|
||
|
>>> strong_password_detector('Sh0r1')
|
||
|
'Your Password must be at least 8 characters long'
|
||
|
|
||
|
>>> strong_password_detector('Hello123')
|
||
|
'Password should contain UPPERCASE, lowercase, numbers, special characters'
|
||
|
|
||
|
>>> strong_password_detector('Hello1238udfhiaf038fajdvjjf!jaiuFhkqi1')
|
||
|
'This is a strong Password'
|
||
|
|
||
|
>>> strong_password_detector(0)
|
||
|
'Your Password must be at least 8 characters long'
|
||
|
"""
|
||
|
|
||
|
if len(str(password)) < 8:
|
||
|
return "Your Password must be at least 8 characters long"
|
||
|
|
||
|
upper = any(char in ascii_uppercase for char in password)
|
||
|
lower = any(char in ascii_lowercase for char in password)
|
||
|
num = any(char in digits for char in password)
|
||
|
spec_char = any(char in punctuation for char in password)
|
||
|
|
||
|
if upper and lower and num and spec_char:
|
||
|
return "This is a strong Password"
|
||
|
|
||
|
else:
|
||
|
return (
|
||
|
"Password should contain UPPERCASE, lowercase, "
|
||
|
"numbers, special characters"
|
||
|
)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
import doctest
|
||
|
|
||
|
doctest.testmod()
|