The .ipynb files provided are python files that implement various password-hashing or password-cracking algorithms:
- MD5
- Sha256
- BCrypt
- COMPLETE
- Bruteforce Attack
- Dictionary Attack
Additionally, there are txt and csv files that were used as training/testing datasets to implement the encryption/decryption aglorithms on actual passwords.
MD5.ipynb:
- We implement the MD5 hashing algorithm using the hashlib module from python
- Due to its sheer complexity, the MD5 algorithm is incredibly difficult to build from scratch. Hence, using the md5() function given by the hashlib module provides us a practical and readable method to utilize the algorithm.
- Note: while MD5 used to be secure, it has since been cracked and is no longer reliable.
Sha256.ipynb:
- We implemented the Sha256 algorithm the same way we implemented MD5, using hashlib module.
COMPLETE.py:
- Combines all 3 above hash algorithms to be more user-friendly
- User can enter a password to hash and pick a hash algorithm
BruteForceRecur.ipynb:
- As the name "brute force" suggests, this script generates all possible passwords up to a given length based on a list of valid characters (alphanumeric + certain symbols)
DictAttack.py:
- Guesses passwords from a list of 10k common passwords
- Interacts directly with the user interface!