item extbf{Deterministic}: With the same input, it will always give the same output no matter what.item extbf{Fast}: Cryptographic Hash Functions rely a lot on bitwise operations which can be easily computed quickly and the computers going to be need to sometimes running these hash functions thousands of times over. As a result, they need to be constructed in a way that the computer can run them very very quickly and efficiently. item extbf{Irreversible} : When people hear the word cryptography often times they think of encrypting and decrypting things; but in a cryptographic hash function when it gets value in and gives the hash digests out of the function, no one can reverse that process. It’s not an encryption and decryption; it simply encrypts data and it can never be decrypted. This subject is abstract but as an example, think of a mathematical operation like addition and the number given 100. To found two numbers that are added, we have no idea. We just have to guess and hope that we can guess what numbers got together. Indeed, that’s what irreversible means in this programmatic terms.item extbf{Avalanche effect} : Due to looping cascading nature of the functions that we’re going to dive into, with two incredibly similar inputs of length 600 words, even one letter turns upper case output hash completely changes.item extbf{Collision resistance} : Cryptographic Hash Functions are collision resistance. It means that the odds of finding two hash inputs the result in the same hashed digest output is probabilistically impossible if it’s a good hash function. It’s just so incredibly small chance that would ever happen that it can be considered pretty much impossible, especially with modern computing technology. item extbf{Preimage resistance } : This is a cryptographic term and this means that if you have an output hash digest there is no way to know the input value that resulted in that digest even if you have the exact hash algorithm line for line you can’t know without guessing