Christian solutions

I have been playing around several ideas and at the end the simpler ones are the best. Didn't touch parallelization strategies yet.

My main proposal is at <code>chriszen.multihash.MapPasswordFinder</code> which follows the interface <code>chriszen.multihash.PasswordFinder</code>. To evaluate its performance I use <code>chriszen.multihash.MultiHashEval</code>.

I encorage people to use common interface and evaluator to be able to compare performance.

To run the performance evaluator:
<pre>
sbt "runMain chriszen.multihash.MultiHashEval"

Loading dictionary ...
Done in 0,989 secs
Looking for passwords ...
Found 306706 passwords out of 306706
Done in 0,248 secs
</pre>

Optionally you can specify which hashes to look for and which dictionary to use:

<pre>
sbt "runMain chriszen.multihash.MultiHashEval hashes-db.txt cain.txt"
</pre>