Hashing data
There are multiple hash algorithms you can choose from in .NET Core. 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?
Here are some common hashing algorithms:
Algorithm |
Hash size |
Description |
MD5 |
16 bytes |
This is commonly used because it is fast, but it is not collision-resistant. |
SHA1, SHA256, SHA384, SHA512 |
20 bytes, 32 bytes, 48 bytes, 64 bytes |
These are Secure Hashing Algorithm 2nd generation algorithms (SHA2) with different hash sizes. The use of SHA1s on the Internet has been deprecated since 2011. |
Tip
Good Practice
Avoid MD5 and SHA1 because they have known weaknesses. Choose a larger hash size to reduce the possibility of repeated hashes.
Hashing with SHA256
In the Ch11_CryptographyLib...