Hashing data
In .NET, there are multiple hash algorithms you can choose from. Some do not use any key, some use symmetric keys, and some use asymmetric keys.
There are two important factors to consider when choosing a hash algorithm:
- Collision resistance: How rare is it to find two inputs that share the same hash?
- Preimage resistance: For a hash, how difficult would it be to find another input that shares the same hash?
Some common non-keyed hashing algorithms are shown in the following table:
Algorithm |
Hash size |
Description |
MD5 |
16 bytes |
This is commonly used because it is fast, but it is not collision resistant. |
SHA-1 |
20 bytes | ...