If you have 16 bytes storing a 128bit number is not an issue. Store the 128bit value as a 16byte value instead of a 32 character string that stored the 16 byte value as HEX.
As a note I have used GUID/UUID fields in databases to store MD5 hashes. While no longer cryptographically secure, 128bit MD5 hashes are fine for Checksums (and is much better than 64 bits.)
var result = MD5.Create().ComputeHash(new byte[] { 0 });
Console.WriteLine(result.Length);
Console.WriteLine(Convert.ToBase64String(result));
Console.WriteLine(result.Aggregate(new StringBuilder(),
(sb, v) => sb.Append(v.ToString("x2"))));
//16
//k7iFrf4NoInN9jSQT9WfcQ==
//93b885adfe0da089cdf634904fd59f71
File.WriteAllBytes("tempfile.dat", result);
var input = File.ReadAllBytes("tempfile.dat");
Console.WriteLine(input.Length);
Console.WriteLine(Convert.ToBase64String(input));
Console.WriteLine(input.Aggregate(new StringBuilder(),
(sb, v) => sb.Append(v.ToString("x2"))));
//16
//k7iFrf4NoInN9jSQT9WfcQ==
//93b885adfe0da089cdf634904fd59f71
Note that I don't show the file content because there is a good chance that it will contain "unprintable" characters.