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?

  • I'm looking for this as well. I do see that type 5100 ("Half MD5") exists, so hashcat -a3 -m5100 <(printf 9 |md5sum |head -c16) '?d' correctly outputs 45c48cce2e2d7fbd: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.
    – Adam Katz
    Apr 13 '16 at 22:03

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.

  • Is there any Gpu accelerated solution to this?
    – deed02392
    Sep 28 '17 at 13:27
  • 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) Sep 28 '17 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. Oct 6 '18 at 13:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.