In hashcat, how does one specify that the given hashes have been reduced to a specific length? I.e. the stored hashes that are to be solved are truncated versions of what the hash function provides?
1 Answer
As of the current version (3.30), hashcat does not currently support truncated hashes beyond the half-MD5 modes. In my discussions with the team, I made the pitch (basically what I wrote here).
So far, they have expressed non-interest in expanding partial-hash matching to other types, as it's considered to be out of scope for the project. But this could change in the future.
-
-
In practice, as you discovered in Pornin's answer here, GPU-accelerated half-MD5 in hashcat would be sufficient to cover lengths higher than MD5 ... but in practice won't help much (for brute force, anyway) Commented Sep 28, 2017 at 15:11
-
Update 2018-10: It's not hashcat, so not a strict answer to the question, but for general truncated-hash work, MDXfind works on a variety of truncated hashes. It is currently CPU only, but that may change in the future. Commented Oct 6, 2018 at 13:12
hashcat -a3 -m5100 <(printf 9 |md5sum |head -c16) '?d'
correctly outputs45c48cce2e2d7fbd:9
, but I can't get it to work with lengths other than 16 (-m5100
) and 32 (-m0
). It probably requires messing with the source code. That said, if you're looking for a MD5 length between 16 and 32, you can truncate the hash to 16 and only slightly increase the chance of an invalid collision.