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
    Commented Apr 13, 2016 at 22:03

1 Answer 1


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
    Commented Sep 28, 2017 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) 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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .