public static String ComputeContentHash <T>(T obj) where T : class { if (null == obj) { throw new ArgumentNullException(nameof(obj)); } String serializedObject = GetContentString(obj); IHasher hasher = new Sha512Hasher(); return(hasher.Compute(serializedObject)); }
public void Sha512HasherComputeSpecific() { Dictionary <Object, String> inputs = new Dictionary <Object, String> { { "This is a string", @"9NVNMuNSM1f/AjkD6ronIejIz8dwJmN4LLPlL68sVsACzDCWtfK234cL5mXQBA6ZY1kOsC0D0WblKZnNHEMNsQ==" }, { 1337, @"bwrGX+ARiGYKrZAL/hbFZuvw5WwKfUoVvYMQSRCN6AvTovvxqLkWYkM6QEWOwgiiB8qwc/GQvWW4ieleT8qOCQ==" }, { "1337", @"bwrGX+ARiGYKrZAL/hbFZuvw5WwKfUoVvYMQSRCN6AvTovvxqLkWYkM6QEWOwgiiB8qwc/GQvWW4ieleT8qOCQ==" }, { DateTime.MinValue, @"mz2wFcFqZ53f2OszoQA4W+nJZnb5yThHefv4EQ1jkGmaeO9Ad/hdHn9AdkKHAPvHZmZzVmVyr+idndQw9d3eYg==" } }; IHasher hasher = new Sha512Hasher(); foreach (KeyValuePair <Object, String> kv in inputs) { Assert.AreEqual(kv.Value, hasher.Compute(kv.Key)); } }