Hashing data
In .NET Core, there are multiple hash algorithms you can choose from. Some do not use any key, some use symmetric keys, and some use asymmetric keys.
Some of the more common hashing algorithms are shown in the following diagram:

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?
Here are some common non-keyed hashing algorithms:
Algorithm | Hash size | Description |
MD5 | 16 bytes | This is commonly used because it is fast, but it is not collision-resistant |
SHA1 | 20 bytes | The use of SHA1 on the internet has been deprecated since 2011 |
SHA256 SHA384 SHA512 | 32 bytes 48 bytes 64 bytes | These are Secure Hashing Algorithm 2nd generation (SHA2) algorithms with different hash sizes |
Note
Good Practice
Avoid MD5 and SHA1 because they have known weaknesses. Choose a larger hash size to reduce the possibility of...