The function that takes in a SHA-1 hash of a password and returns the password if it is one of the top 10,000 passwords used. If the SHA-1 hash is NOT of a password in the database, return "PASSWORD NOT IN DATABASE".
The function should hash each password from top-10000-passwords.txt
and compare it to the hash passed into the function.
The function should take an optional second argument named use_salts
. If set to true, each salt string from the file known-salts.txt
should be appended AND prepended to each password from top-10000-passwords.txt
before hashing and before comparing it to the hash passed into the function.
Here are some hashed passwords to test the function with:
b305921a3723cd5d70a375cd21a61e60aabb84ec
should return "sammy123"c7ab388a5ebefbf4d550652f1eb4d833e5316e3e
should return "abacab"5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
should return "password"
Here are some hashed passwords to test the function with when use_salts
is set to True
:
53d8b3dc9d39f0184144674e310185e41a87ffd5
should return "superman"da5a4e8cf89539e66097acd2f8af128acae2f8ae
should return "q1w2e3r4t5"ea3f62d498e3b98557f9f9cd0d905028b3b019e1
should return "bubbles1"
The unit tests for this project are in test_module.py
. We imported the tests from test_module.py
to main.py
for your convenience.