前言
本篇主要记录:VS2019 WinFrm桌面应用程序实现字符串和文件的Md5转换功能。后续系统用户登录密码保护,可采用MD5加密保存到后台数据库。
准备工作
搭建WinFrm前台界面
如下图
核心代码构造Md5Helper类
代码如下:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks; namespace MD5Demo
{
class Md5Helper
{
/// <summary>
/// 获取Md5码
/// </summary>
/// <param name="value">需要转换成Md5码的原码</param>
/// <returns></returns>
public static string Md5(string value)
{
var result = string.Empty;
if (string.IsNullOrEmpty(value)) return result;
using (var md5 = MD5.Create())
{
result = GetMd5Hash(md5, value);
}
return result;
}
static string GetMd5Hash(MD5 md5Hash, string input)
{ byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
var sBuilder = new StringBuilder();
foreach (byte t in data)
{
sBuilder.Append(t.ToString("x2"));
}
return sBuilder.ToString();
}
static bool VerifyMd5Hash(MD5 md5Hash, string input, string hash)
{
var hashOfInput = GetMd5Hash(md5Hash, input);
var comparer = StringComparer.OrdinalIgnoreCase;
return == comparer.Compare(hashOfInput, hash);
} /// <summary>
/// 获取文件的Md5码
/// </summary>
/// <param name="fileName">文件所在的路径</param>
/// <returns></returns>
public static string GetMD5HashFromFile(string fileName)
{
try
{
FileStream file = new FileStream(fileName, FileMode.Open);
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(file);
file.Close(); StringBuilder sb = new StringBuilder();
for (int i = ; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("x2"));
}
return sb.ToString();
}
catch (Exception ex)
{
throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);
}
} }
}
效果展示
作者:Jeremy.Wu
出处:https://www.cnblogs.com/jeremywucnblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。