10-11-2010, 12:37 PM
this is something i already implemented long time ago. since it gives no performance improvement i removed it (i prefer to have a clean and easy to read source). i guess the compiler already optimized it.
i reimplemented your version just to double check the result, but still no change in speed. i rewrote it to sse2 and also found that the constant 0xf8fa0c4c is wrong. the correct value is be 0xf8fa0bcc.
i also know that md5 hashes can be reversed (partially), but this optimization is incompatible to hashcat or oclHashcat since they are designed for wordlist-based attacks and not brute-force.
there are still some optimizations left in hashcat like not adding A,B,C,D to a,b,c,d at the end or not running the last 3 steps if A is not found in bitmap.
hashcat is a closed-source project. i am not willing to make it open-source yet, sorry.
i reimplemented your version just to double check the result, but still no change in speed. i rewrote it to sse2 and also found that the constant 0xf8fa0c4c is wrong. the correct value is be 0xf8fa0bcc.
i also know that md5 hashes can be reversed (partially), but this optimization is incompatible to hashcat or oclHashcat since they are designed for wordlist-based attacks and not brute-force.
there are still some optimizations left in hashcat like not adding A,B,C,D to a,b,c,d at the end or not running the last 3 steps if A is not found in bitmap.
hashcat is a closed-source project. i am not willing to make it open-source yet, sorry.