3 ms·
I mean, anything past 256 bits is going to have a collision, so that doesn't matter, but you're right that the entire point of a hash is that even if you know t
by enkid 5y ago
I mean, anything past 256 bits is going to have a collision, so that doesn't matter, but you're right that the entire point of a hash is that even if you know the hash, it's very very hard to find what the plaintext is.
- mtreis86 5y agoThere are a number of reversible hash algos. The point of hash is that the small changes in the input produce big changes in the output so even a 1-bit change to the input produces a completely different output. Some hash algos having trap door functionality is really more of a bonus.
- enkid 5y agoSure, I guess I wasn't being specific enough. Once of the reasons to use SHA-256 is because that's hard to do.
- eru 5y agoYou can only reverse your hash function, if you output is at least as long as your input. The kind of function you describe is useful, too, of course. You can build something like them out of almost any modern encryption method: Encryption methods have to be reversible, so you can decrypt; and they are expected not to betray anything about their inputs, so there are probably some that have this avalanche property, or can be patched to have it fairly simply.
- thaumasiotes 5y agoIt's true that any input length larger than 256 bits will exhibit a collision. It isn't true that it will necessarily exhibit every possible output. Maybe there's an output value that is only available for ridiculously large input.
- eru 5y agoYes, that's possible in general. Though fairly unlikely, if the hash was 'random'. We know the structure of SHA256, so we could actually answer that question. https://en.wikipedia.org/wiki/Preimage_attack https://en.wikipedia.org/wiki/Preimage_attack says that pre-image attacks on hash function in general only take 2^n time (ie you don't need to look for passwords longer than 256 bits), but I don't see how they conclude that.