一、MD5加密算法
1.测试界面如下:
简单的显示原始数据,加密后的数据和检验结果等信息。
2.功能代码
C#通过SHA256类实现对字符串等数据的加密和校验功能 。
#region MD5加密
/// <summary>
/// MD5加密
/// </summary>
/// <param name="input"></param>
public static string GetMd5Hash(string input)
{
//使用SHA256,代替MD5类,直接使用MD5类创建时会报错
using (var hash = SHA256.Create())
{
//获取MD5哈希数据
byte[] arrayByteData = hash.ComputeHash(Encoding.UTF8.GetBytes(input));
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < arrayByteData.Length; i++)
{
strBuilder.Append(arrayByteData[i].ToString("X2", FormatInfo.Number));
}
hash.Dispose(); //释放资源。
return strBuilder.ToString();
}
}
/// <summary>
/// 校验MD5加密数据
/// </summary>
/// <param name="input"></param>
/// <param name="md5Hash"></param>
/// <returns></returns>
public static bool VerifyMd5Hash(string input, string md5Hash)
{
string inputHash = GetMd5Hash(input);
if (inputHash.Equals(md5Hash, StringComparison.InvariantCulture))
{
return true;
}
else
{
return false;
}
}
#endregion MD5加密 <=END
3.测试代码
添加按键点击事件,用来执行加密指令。
private void MyButton_Click(object sender, RoutedEventArgs e)
{
txt_hash.Text = MyCryptography.GetMd5Hash(txt_SourceData.Text);
label_VerifyResult.Content = MyCryptography.VerifyMd5Hash(txt_SourceData.Text, txt_hash.Text).ToString();
}