public void TestBaseConversionWithRandomStrings() { for (int i = 0; i < 10000; i++) { var someRandomName = new Random().NextRandomName(); var md5InBase16 = someRandomName.GetMD5Hash(); Assert_IsBase16(md5InBase16); var b64 = BaseConversionHelper.FromHexStringtoBase64String(md5InBase16); Assert_IsBase64(b64); Assert.Equal(md5InBase16, BaseConversionHelper.FromBase64StringToHexString(b64)); } }
public void StringBaseConversion() { var base64String = "8Uie51Oz+GZcufyQ8q2GwA=="; // An example md5 hash in base 64 var base16HexString = BaseConversionHelper.FromBase64StringToHexString(base64String); Assert.Equal("F1489EE753B3F8665CB9FC90F2AD86C0", base16HexString); var newBase64String = BaseConversionHelper.FromHexStringtoBase64String(base16HexString); Assert.Equal(base64String, newBase64String); Assert_IsBase64(base64String); Assert_IsBase16(base16HexString); }
/// <summary> Returns the MD5 hash in hex (base 16) if available in the headers </summary> public string GetMD5Checksum() { var md5Hash = GetHeaderValue("content-md5", null); if (md5Hash.IsNullOrEmpty()) // If the normal md5 header was not found, check for others: // Google uses the "x-goog-hash" header instead containing an md5 hash as well: { if (TryGetXGoogMd5HashInBase64(this, out var xGoogMd5)) { md5Hash = xGoogMd5; } } if (md5Hash.IsRegexMatch(RegexTemplates.MD5_HASH_BASE64)) { md5Hash = BaseConversionHelper.FromBase64StringToHexString(md5Hash); } return(md5Hash); }