3 ms·
I'm getting more than 1M SHA1 + Hamming Distance calcs/core/sec on a Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz, and I haven't really optimized beyond the obvio
by cyberfox 17y ago
I'm getting more than 1M SHA1 + Hamming Distance calcs/core/sec on a Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz, and I haven't really optimized beyond the obvious.
It's a brutally simple algorithm, really. XOR + bitcount, which only iterates for each 1 bit, so the lower the total hamming #, the faster it finds it.
It's in C, so everything works in unsigned long blocks. Compiled with -O3 it's:
real 0m0.968s
for 1M each on two forked processes, and 80 lines of code.
- cyberfox 17y agoOooog. Boy is my face red. I was recalculating the main SHA1 each time through the loop. A minor refactoring mistake with a major impact... With the base string hash pulled out of the loop, it's looking more like 1.7M SHA1 + HD calcs/core/sec.
- matta 17y agoYeah, mine's Perl, and running on a slower processor, so the difference feels about right. Of course my main calculation is only one line: $hamming_dist = unpack("%160b*", sha1($attempt_phrase) ^ $challenge_sha); :)