Man, your code is awesome! I have a suggestion tho... If you use a dictionary loaded with latters and/or words and loops, you can make it better and faster!
Good work !!!
@fronthead: Hello! Thanks for your suggestion! What you are mentioning does exist, but is different from mine. A brute-force attack consists of an attacker trying many passwords or passphrases with the hope of eventually guessing correctly (https://en.wikipedia.org/wiki/Brute-force_attack\). This is different from what you are mentioning. A dictionary attack is a technique for defeating a cipher or authentication mechanism by trying to determine its decryption key or passphrase by trying hundreds or sometimes millions of likely possibilities, such as words in a dictionary (https://en.wikipedia.org/wiki/Dictionary_attack\). If you do make a Dictionary Password Attacker, please send me the link!