首页 > 代码库 > md5作为检验数据完整性的加密算法最常用,c#实现MD5的方法

md5作为检验数据完整性的加密算法最常用,c#实现MD5的方法

md5的C#实现方法,自定义md5方法,完全跳过现今网络上的md5库,实现md5加密的完全安全。

md5虽然很强大,但运用不好照样可以被黑。简单数字和字母的短字符串md5的加密字符在现在的网络中一下就可以查询到,也就是可以直接解密,md5库里直接就有了。所以md5的加密还是自己定义个规则,这样更安全。

请看下面例子的“自定义MD5方法”中的“Md5EncodeMamicode”,简单的实现思路,更安全的安全方法。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Security.Cryptography;namespace M_Class{    /// <summary>    /// [MD5加密][mamicode.com提供]    /// </summary>    public class MD5code    {        /// <summary>        /// [构造函数]        /// </summary>        public MD5code()        { }        /// <summary>        /// 默认加密方式        /// </summary>        /// <param name="str"></param>        /// <returns></returns>        public static string Md5Encode(string str)        {            return Md5Encode32(str);        }        /// <summary>        /// 32位MD5算法加密        /// </summary>        /// <param name="str">需要加密的字符串</param>        /// <returns>加密后的字符串</returns>        public static string Md5Encode32(string str)        {            string password = "";           MD5 md5 = MD5.Create();           byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str));           foreach (byte b in s)               password += b.ToString("X2");           return password;        }        #region 自定义MD5方法        /// <summary>        /// mamicode的MD5加密法        /// </summary>        /// <param name="uid">用户ID</param>        /// <param name="MamicodePWD">需要加密的字符串</param>        /// <returns>加密后的字符串</returns>        public static string Md5EncodeMamicode(string uid, string MamicodePWD)        {            ///加密规则说明:分3步            ///第1步:对pwd进行一次md5加密            ///第2步:拼接新字符串,用户ID+pwd+第1步加密后字符串取第5位开始的15位字符            ///第3步:将第2步拼接的字符串再一次md5加密                                    string Secretkey1 = Md5Encode32(MamicodePWD);            string Secretkey2 = uid + Secretkey1 + Secretkey1.Substring(5, 15);            string Secretkey3 = Md5Encode32(Secretkey2);                        return Secretkey3;        }        #endregion    }} 

md5作为检验数据完整性的加密算法最常用,c#实现MD5的方法