I made this a while back to ease the barrier to entry to Hashcat: <a href="https://github.com/brannondorsey/naive-hashcat" rel="nofollow">https://github.com/brannondorsey/naive-hashcat</a><p>Not that it's that big of a barrier, but it can be somewhat daunting to new password crackers.
Used Hashcat in the Student Cluster Competition[1] of SC16 conference. There was a task where students were asked to recovery as many passwords as possible from a vault consisting of md5crypt and bcrypt hashes[2]. The performance was amazing - 8400k md5crypt per second with 2 NVIDIA K80.<p>I also profiled the code trying to discover possible optimizations, and found that the code has been heavily optimized. Computation and data transfer are well overlapped, so GPU utilization is pretty high. It's a really great tool.<p>[1] <a href="http://studentclustercompetition.us/2016/applications.html" rel="nofollow">http://studentclustercompetition.us/2016/applications.html</a><p>[2] <a href="https://docs.google.com/document/d/1tXBy9-ajFtO_b8hvbuleqRbcNYvgoGUQgvQN1vzPWHM/edit" rel="nofollow">https://docs.google.com/document/d/1tXBy9-ajFtO_b8hvbuleqRbc...</a>
I can recommend Hashcat, used it myself for cracking bitcoin wallet using multiple GPUs. Great tool if you forget your password and it works with so many applications/file formats.
When I was in undergraduate engineering (~3 years ago), hashcat was actually a key part of some great computer security assignments. I'm happy to see it's updated, although it was pretty solid when I had to use it!
Will this work on a something like a 100 character plaintext password that was written down with 3 transcription errors? Can it try all permutations of the 100 char password changing up to 3 characters at a time?