Frame/Assets/Scripts/MVVM/Core/Infrastructure/MD5Helper.cs

45 lines
1.4 KiB
C#
Raw Normal View History

using System;
using System.Security.Cryptography;
using System.Text;
namespace uMVVM.Sources.Infrastructure
{
public class MD5Helper
{
public static string GetMd5Hash(MD5 md5Hash, string input)
{
// Convert the input string to a byte array and compute the hash.
var data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
// Create a new Stringbuilder to collect the bytes
// and create a string.
var sBuilder = new StringBuilder();
// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for (var i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
// Return the hexadecimal string.
return sBuilder.ToString();
}
// Verify a hash against a string.
public static bool VerifyMd5Hash(MD5 md5Hash, string input, string hash)
{
// Hash the input.
var hashOfInput = GetMd5Hash(md5Hash, input);
// Create a StringComparer an compare the hashes.
var comparer = StringComparer.OrdinalIgnoreCase;
if (0 == comparer.Compare(hashOfInput, hash))
{
return true;
}
return false;
}
}
}