✅ Hash collision checkin
I wanted to do some fun testing with SHA256 and ya how do i do collision checkin? 
HashSet<T> or a Dictionary<TKey, TValue>. Add the created hash to these collections and when creating a new hash, check if said collections already contain itevery hash will have a collision at some point
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Security.Cryptography;
BigInteger UPPER_BOUND = BigInteger.Pow(2, 256);
Dictionary<string, BigInteger> seenHashes = new();
for (BigInteger i = 0; i <= UPPER_BOUND; i++)
{
byte[] iHashed = SHA256.HashData(i.ToByteArray());
string iHashedAsString = BitConverter.ToString(iHashed);
if (!seenHashes.TryAdd(iHashedAsString, i))
{
Console.WriteLine($"Collision seen: {seenHashes[iHashedAsString]} and {i}");
return;
}
}