A Cryptographic one-way hash function is used to generate a fixed length hash value as a transformation from a specific input. It should be computationally feasible in that it should
- Not have the Avalanche Effect in producing the hash value
- Given h it should be hard to find any m such that h = hash(m)
- It should be collision resistant, i.e given an input m1, It should be hard to find another input, m2 (not equal to m1) such that hash(m1) = hash(m2)
- Resistant to Birthday attacks
.Net Framework BCL provides solid support to some cryptographic hash functions like MD5,SHA1,SHA128,SHA384 and SHA512. I've written a small demo program to compute hash and verify them using the listed cryptographic hash algorithms.