• 文章介绍了五种使用MD5的方法,提供一种思路和参考,实例1是一种较安全的方法。如果不支持中文,可将中文编码取出进行MD5加密。本文的所有方法均来自网络,感谢各位作者提供。

    ---------------------第1组---------------------

    【方法一】


    首先,先简单介绍一下MD5

    MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来, 经md2、md3和md4发展而来。

    MD5具有很好的安全性(因为它具有不可逆的特征,加过密的密文经过解密后和加密前的东东相同的可能性极小)

    引用

    具体代码如下(写在按钮的Click事件里):

     

                 【方法二】


    C# MD5加密


                                          【方法三】
    一、C# MD5-16位加密实例,32位加密实例(两种方法)

    环境:vs.net2005/sql server2000/xp测试通过
    1.MD5 16位加密实例
     
     

    二、首先在界面中引入:using System.Web.Security;

    假设密码对话框名字password,对输入的密码加密后存入变量pwd中,语句如下:

     string pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text, "MD5");

    如果要录入则录入pwd,这样数据库实际的密码为202*****等乱码了。

    如果登录查询则要:

    select username,password from users where username='"+ UserName.Text +"' and password='"+ pwd +"'

    因为MD5不能解密,只能把原始密码加密后与数据库中加密的密码比较

    三、C# MD5 加密方法 16位或32位

     

        四、做一个网站时,必然涉及用户登录,用户登录必然涉及密码,密码必然涉及安全,安全必然涉及加密。
    加密现时最流行也是据说最安全的算法是MD5算法,MD5是一种不可逆的算法,也就是 明文经过加密后,根据加密过的密文无法还原出明文来。
    目前有好多网站专搞MD5破密,百度上搜一下MD5就搜出一大堆了,今天早上无聊试了几个破密网站,6位以内纯数字密码的MD5密文可以还原出明文,长点的或带字符的就不行了。他们是采用穷举对比的,就是说把收录到的明文和密文放到数据库里,通过密文的对比来确定明文,毕竟收录的数据有限,所以破解的密码很有限。
    扯远了,搞破密MD5需要大量的MONEY,因为要一个运算得超快的计算机和一个查找性能超好的数据库和超大的数据库收录。但搞加密就比较简单。以下是我用C#写的一个MD5加密的方法,用到.NET中的方法, 通过MD5_APP.StringToMD5(string str, int i)可以直接调用:

    ---------------------第2组----------------------

    【一、使用标准库加密】

    【二、ASP.NET专用加密方法】

    【三、MSDN】

    【四、使用淘宝API】

    【五、自己实现MD5类】

      

    注:以上3、4中对于中文有编码问题,上面的案例为UTF-8编码,2中其实也有编码的问题,但是那个主要是与当前页面的编码有关系,即使用默认编码的方式。  

     

    展开全文
  • //获取字符串的MD5码 public string md5(string input) { // Use input string to calculate MD5 hash MD5 md5 = System.Security.Cryptography.MD5.Create(); ...

            //获取字符串的MD5码
            public string md5(string input)
            {
                // Use input string to calculate MD5 hash
                MD5 md5 = System.Security.Cryptography.MD5.Create();
                byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
                byte[] hashBytes = md5.ComputeHash(inputBytes);

                // Convert the byte array to hexadecimal string
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < hashBytes.Length; i++)
                {
                    sb.Append(hashBytes[i].ToString("X2"));
                    // To force the hex string to lower-case letters instead of
                    // upper-case, use he following line instead:
                    // sb.Append(hashBytes[i].ToString("x2")); 
                }
                return sb.ToString();
            }
            
            public string MD5ForPHP(string stringToHash)
            {
                var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] emailBytes = Encoding.UTF8.GetBytes(stringToHash.ToLower());
                byte[] hashedEmailBytes = md5.ComputeHash(emailBytes);
                StringBuilder sb = new StringBuilder();
                foreach (var b in hashedEmailBytes)
                {
                    sb.Append(b.ToString("x2").ToLower());
                }
                return sb.ToString();
            }
                    
            public static string GetStrMd5_32X(string ConvertString)

            {
                MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
                string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(ConvertString)));
                t2 = t2.Replace("-", "");
                return t2.ToLower();
            }

    展开全文
  • using System.Security.Cryptography; using System.Text; //要使用此函数请先加上止面两行.protected string UserMd5(string str) { string encodeStr = str;... MD5 md5 = MD5.Create(); // 加密后是一个字节类
    using System.Security.Cryptography; 
    using System.Text;
    //要使用此函数请先加上止面两行.

    protected string UserMd5(string str)
    {
       string encodeStr = str;
       string pwd = "";
       MD5 md5 = MD5.Create();
       // 加密后是一个字节类型的数组
       byte[] s=md5.ComputeHash(Encoding.Unicode.GetBytes(encodeStr));
       // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
       for(int i = 0 ; i < s.Length; i++)
       {
           // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
           pwd = pwd + s[i].ToString("x");
       }
       return pwd;
    }
     
    展开全文
  • c# MD5加密

    2018-12-17 11:49:37
    using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks;.../*********************... * 概要:MD5加密  * 设...

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Security.Cryptography;
    using System.Text;
    using System.Threading.Tasks;
    /******************************
     * 概要:MD5加密
     * 设计者:DuanXuWen
     * 时间:20180309
     * 版本:0.1
     * 修改者:
     * 修改时间:
     * ***************************/

    namespace Common
    {
        public class EncrypHelper
        {
            /// <summary>
            ///静态无参构造
            /// </summary>
            static EncrypHelper()
            {
                //默认的密钥
                SecretKey = "HelloWorld..!!";
            }

            /// <summary>
            /// 使用SHA256加密字符串
            /// </summary>
            /// <param name="Source"></param>
            /// <returns></returns>
            public static string EncrypToSHA(string Source)
            {
                SHA256Managed sha256 = new SHA256Managed();
                byte[] s = UTF8Encoding.UTF8.GetBytes(Source);
                byte[] t = sha256.ComputeHash(s);
                return Convert.ToBase64String(t);
            }

            /// <summary>
            /// MD5加密(32位)
            /// </summary>
            /// <param name="str">加密字符</param>
            /// <returns></returns>
            public static string encrypt(string str)
            {
                string cl = str;
                string pwd = "";
                MD5 md5 = MD5.Create();
                byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
                for (int i = 0; i < s.Length; i++)
                {
                    pwd = pwd + s[i].ToString("X");
                }
                return pwd;
            }

            /// <summary>
            /// 缺省的密钥
            /// </summary>
            public static readonly string SecretKey;

            /// <summary>
            /// 使用缺省密钥字符串加密string
            /// </summary>
            /// <param name="original">明文</param>
            /// <returns>密文</returns>
            public static string Encrypt(string original)
            {
                return Encrypt(original, SecretKey);
            }

            /// <summary>
            /// 使用缺省密钥字符串解密string
            /// </summary>
            /// <param name="original">密文</param>
            /// <returns>明文</returns>
            public static string Decrypt(string original)
            {
                return Decrypt(original, SecretKey, System.Text.Encoding.Default);
            }

            /// <summary>
            /// 使用给定密钥字符串加密string
            /// </summary>
            /// <param name="original">原始文字</param>
            /// <param name="key">密钥</param>
            /// <returns>密文</returns>
            public static string Encrypt(string original, string key)
            {
                byte[] buff = System.Text.Encoding.Default.GetBytes(original);
                byte[] kb = System.Text.Encoding.Default.GetBytes(key);
                return Convert.ToBase64String(Encrypt(buff, kb));
            }

            /// <summary>
            /// 使用给定密钥字符串解密string
            /// </summary>
            /// <param name="original">密文</param>
            /// <param name="key">密钥</param>
            /// <returns>明文</returns>
            public static string Decrypt(string original, string key)
            {
                return Decrypt(original, key, System.Text.Encoding.Default);
            }

            /// <summary>
            /// 使用给定密钥字符串解密string,返回指定编码方式明文
            /// </summary>
            /// <param name="encrypted">密文</param>
            /// <param name="key">密钥</param>
            /// <param name="encoding">字符编码方案</param>
            /// <returns>明文</returns>
            public static string Decrypt(string encrypted, string key, Encoding encoding)
            {
                byte[] buff = Convert.FromBase64String(encrypted);
                byte[] kb = System.Text.Encoding.Default.GetBytes(key);
                return encoding.GetString(Decrypt(buff, kb));
            }

            /// <summary>
            /// 生成MD5摘要
            /// </summary>
            /// <param name="original">数据源</param>
            /// <returns>摘要</returns>
            public static byte[] MakeMd5(byte[] original)
            {
                MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
                byte[] keyhash = hashmd5.ComputeHash(original);
                hashmd5 = null;
                return keyhash;
            }

            /// <summary>
            /// 使用给定密钥加密
            /// </summary>
            /// <param name="original">明文</param>
            /// <param name="key">密钥</param>
            /// <returns>密文</returns>
            public static byte[] Encrypt(byte[] original, byte[] key)
            {
                TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
                des.Key = MakeMd5(key);
                des.Mode = CipherMode.ECB;
                return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
            }

            /// <summary>
            /// 使用给定密钥解密数据
            /// </summary>
            /// <param name="encrypted">密文</param>
            /// <param name="key">密钥</param>
            /// <returns>明文</returns>
            public static byte[] Decrypt(byte[] encrypted, byte[] key)
            {
                TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
                des.Key = MakeMd5(key);
                des.Mode = CipherMode.ECB;
                return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
            }
        }
    }

     

    展开全文
  • MD5加密是很多项目中都会用到的技术,那么在C#中如何的应用MD5加密呢?下面小编给大家分享一下。 首先打开Visual Studio的软件,创建一个简单的控制台项目 ```csharp static void Main(string[] args) { string ...

    MD5加密是很多项目中都会用到的技术,那么在C#中如何的应用MD5加密呢?下面小编给大家分享一下。

    首先打开Visual Studio的软件,创建一个简单的控制台项目

    
    ```csharp
    static void Main(string[] args)
            {
                string text = "12";//需要加密的明文
                MD5 mD5 = new MD5CryptoServiceProvider();//实例化MD5
                byte[] fromdata = System.Text.Encoding.UTF8.GetBytes(text);//编码处理
                byte[] targetData = mD5.ComputeHash(fromdata);//每个字符
                string byte2String = "";
                for (int i = 0; i < targetData.Length; i++)
                {
                    byte2String += targetData[i].ToString("x2");//拼接加密密码
                }
                Console.WriteLine(byte2String);
                Console.ReadKey();
            }
    

    在这里插入图片描述

    
    
    展开全文
  • C#中MD5加密

    2017-06-29 15:10:18
    string 加密后的字符串 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile("需要加密的字符串", "MD5").ToLower();
  • C#实现MD5加密

    2018-11-28 10:58:09
    C#实现MD5加密。 1、创建MD5Str.cs加密处理类 public class MD5Str { /// &lt;summary&gt; /// 字符串MD5加密 /// &lt;/summary&gt; /// &lt;param name="Text"&gt;要加密...
  • C# 加密 MD5加密

    2020-06-10 19:55:42
    C# 加密 MD5加密 System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(textBox2.Text, "MD5");
  • java与c#MD5加密方法得到不一致解决办法,MD5加密后得到不一致结果
  • C#中 MD5加密的实现

    2017-06-11 22:14:49
    using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text;namespace _01_MD5加密 { class Program { static void Main(string[]
  • C# MD5加密

    2018-05-07 16:58:14
    加密算法: string a = "jjj"; MD5 md5 = new MD5CryptoServiceProvider(); byte[] c = md5.ComputeHash( Encoding.UTF8.GetBytes(a)); string d = "";...
  • C# 实现MD5加密

    2015-03-27 16:36:43
    Pwd = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Pwd, "MD5");
  • 16位 public static string GetMd5_16byte(string ConvertString) { string md5Pwd = string.Empty; //使用加密服务提供程序 MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
  • C#文件MD5加密解密代码
  • c#MD5加密解密

    2019-06-22 11:05:49
    MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。 是让大容量信息在用...
  • C# MD5加密代码

    2018-12-19 11:33:06
    QQ技术交流群:601122412 ...string checkUser = Md5Helper.GetMD5(password, "").ToUpper(); public class Md5Helper  {  public static string GetMD5(string sDataIn, string move)  {  ...
  • c#语言实现的原始MD5加密算法,支持16位加密和32位加密.
  • C#MD5加密

    2006-05-11 15:39:00
    C#MD5加密- -Tag: MD5加密 也是抄别人的,用起来方便。 using System.Security.Cryptography; using System.IO; using System.Text; ///MD5加密 public string MD5Encrypt
1 2 3 4 5 ... 20
收藏数 9,014
精华内容 3,605