Tech Solvency / Passwords / "Dehashing" and "Reversing"


Everyone really needs to stop using "dehashing", "reversing", or "decrypting" with password hashes.

These terms run completely counter to the fundamental concept of hashing as a one-way function.

Basically, these terms are the password-cracking equivalent of showing up on a baking forum and saying,

"I bought this cake. How can I turn it back into eggs and flour and milk?"

Or as Julien Piatek illustrated it in Hash functions for newbies:

Diagram showing that you can turn fruit into a smoothie, but you can't turn a smoothie back into the original fruit
Image credit: Julien Piatek, Hash functions for newbies

You can't "deblend" your smoothie. You can't directly turn the smoothie back into the fruit. What you can do is keep trying combinations and ratios of fruit until you get the same taste, color, and consistency. Then you know what the recipe was. In other words, you can block-box reverse-engineer it, but you can't disassemble it.

...

Listen. The word you're looking for is crack (cracked / cracking).

That's what's happening, the first time a plaintext for a given hash is discovered (or if you're a cryptographer, you're finding a preimage). All you're doing is hashing candidate passwords to see if you got one that matches your hash. Over and over again. If you could "reverse" a hash, the underlying function would be a bad hash function, by definition.

(And yes, once a hash is cracked, the results can be indexed or cached for fast retrieval. This provides the illusion that there's some kind of fast math going on. But that's not "reversing" the hashes. That's just a lookup.)

Seriously. You can't get there from here. It's a one-way street. There's no going back.

Every time you use the word "dehashed", God fakes a leak drop.

...

Now I know how cryptographers feel about "crypto = cryptocurrency".


Offenders:

Cross-connect links to this page:

Thanks to @bmenrigh and @hops_ch for impetus and insight.


Want to talk about more password stuff (or something else)? Ping me!