This project was designed to crack a list of encrypted passwords. The program takes every permutation of the alphabet, creates the SHA1 hash, and compares it to a given list of encrypted passwords. If the hash of the permutations matches an entry on the list, the corresponding permutation of the alphabet is added to the list of cracked passwords.

Because there are so many permutations to create / encrypt / compare, the program can also be run on multiple cores to keep run time reasonable. The permutations are created using a generator function, which also improves performance. The project is called Hulk because it uses brute force to “smash” the encrypted passwords.

Major Lessons

  • Functional programming
  • Parallel computing
Hulk.py
Tagged on: