Reworked the original, multiprocessing is not yet implemented in this version as I am still working out how to use pools. However, using an iterable instead of manual loops has resulted in about an 8x speedup on a per-core basis. Additionally, it will now check a range of key lengths as set by max/minKeyLength (default starts at 6 since that's the length of our benchmark key). Also, added some simple if statements to support changing hashing algorithms through the algorithm variable.