C#简单的MD5加密

发布时间 2023-11-09 09:43:42作者: 耿有才

MD5(Message Digest Algorithm 5)是一种常见的哈希函数,用于将任意长度的输入数据通过计算生成固定长度的128位哈希值。MD5 哈希值通常以十六进制字符串的形式表示,常被用于对密码、消息等敏感信息进行加密或摘要处理。

在编程中,可以使用现有的加密库或工具来对数据进行 MD5 加密。在先前的代码示例中,展示了如何使用 C# 中的 MD5 类和相关的编码方法来计算字符串的 MD5 哈希值,并将其表示为十六进制的字符串。

需要注意的是,尽管 MD5 曾经被广泛应用于加密和校验领域,但由于其存在一些安全性漏洞,不再被建议用于加密密码等安全敏感信息。替代方案包括 SHA-256、SHA-512 等更安全的哈希算法。

 

一.创建生成MD5的方法

代码如下:

/// <summary>
        /// 密码生成Md5
        /// </summary>
        /// <param name="md5"></param>
        /// <returns></returns>
        public string GetMd5(string? md5)
        {
            return  string.Join("", MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(md5)).Select(m => m.ToString("X2")));
        }

  

  代码详细讲解:

  

这段代码的作用是计算给定字符串的 MD5 哈希值。让我来逐步解释一下这段代码:

  1. Encoding.UTF8.GetBytes(md5):首先,使用 UTF-8 编码将字符串 md5 转换成字节数组。

  2. MD5.Create().ComputeHash(...):然后,创建一个 MD5 实例并对该字节数组进行哈希计算,得到对应的 MD5 哈希值的字节数组。

  3. .Select(x => x.ToString("X2")):接下来,使用 LINQ 的 Select 方法将每个字节转换为其对应的十六进制表示,并存储为一个字符串数组。

  4. string.Join("", ...):最后,使用空字符串连接字符串数组中的各个十六进制值,得到最终的 MD5 哈希值的字符串表示。

总的来说,这段代码将输入的字符串经过 MD5 哈希计算后,以十六进制格式输出哈希值的字符串表示。

 

二.代码运用到添加和修改密码,登录用户中

代码如下:

  

list.UserPassword== GetMd5(UserPassword)

  直接在登录前调用Md5方法

  

到此MD5结束