# Cryptography/Breaking Hash Algorithms

Cryptographic hashes (designed with the intention of hiding/protecting information) are one of the more difficult, from a cryptography perspective, things to break. This is because they are so designed, making them in theory hard, in useful time frame (if not algorithmically impossible, by today's standards), to be reversed from its final state, back to its original state. If effect, this relationship is not observed: $f'(hash) = message$.

Attacks still exist against it. Even though these hashes are not designed to be reversed, the methods for computing hashes are widely known, making some of attacks possible to succeed: Brute Force, Frequency Analysis, Social Engineering and Coercion and Birthday Attack. Also, it should be mentioned that some hashes, md4, md5, sha-0 notably have been found to have collisions that allow one to take an existing hash and compute a value that, once been hashed, will yield that value. This means that one can create other values that may or may not be the actual original but since it brings about the same hash it allows exploitation.