张思云ID:kong521
3836次访问,排名2万外好友7人,关注者7
结交天下志同道合的朋友
kong521的文章
原创 22 篇
翻译 0 篇
转载 20 篇
评论 3 篇
最近评论
nerv3x3:现在我正遇到这个问题,用你的方法先试试~~
jatlee110:既然写了。还省略关键处,日
gaofeng2000:最后一条:有点问题?是什么问题?那一部分代码是用来解决问题的,没有交待清楚啊?
文章分类
收藏
    相册
    sql2005
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 C#MD5加密解密收藏

    新一篇:  asp.net 强数据类型 asp.net 强数据类型 | 旧一篇: C#中TreeView组件使用方法

    using System.Security.Cryptography;
    using    System.IO;  
    using    System.Text;

    ///MD5加密
      public string MD5Encrypt(string    pToEncrypt,  string    sKey)
        {  
         DESCryptoServiceProvider    des  
    =  new    DESCryptoServiceProvider();  
       
    byte[]    inputByteArray  =    Encoding.Default.GetBytes(pToEncrypt);  
         des.Key  
    =    ASCIIEncoding.ASCII.GetBytes(sKey);  
         des.IV  
    =    ASCIIEncoding.ASCII.GetBytes(sKey);  
         MemoryStream    ms  
    =  new    MemoryStream();  
         CryptoStream    cs  
    =  new    CryptoStream(ms,    des.CreateEncryptor(),CryptoStreamMode.Write);  
         cs.Write(inputByteArray,  
    0,    inputByteArray.Length);  
         cs.FlushFinalBlock();  
         StringBuilder    ret  
    =  new    StringBuilder();  
       
    foreach(byte    b  in    ms.ToArray())  
         {  
          ret.AppendFormat(
    "{0:X2}",    b);  
         }  
         ret.ToString();  
       
    return    ret.ToString();  


        }

      
    ///MD5解密
      public string MD5Decrypt(string    pToDecrypt,  string    sKey)
        {
         DESCryptoServiceProvider    des  
    =  new    DESCryptoServiceProvider();  

       
    byte[]    inputByteArray  =  new  byte[pToDecrypt.Length  /  2];  
       
    for(int    x  =  0;    x  <    pToDecrypt.Length  /  2;    x++)  
         {  
        
    int    i  =    (Convert.ToInt32(pToDecrypt.Substring(x  *  2,  2),  16));  
          inputByteArray[x]  
    =    (byte)i;  
         }  

         des.Key  
    =    ASCIIEncoding.ASCII.GetBytes(sKey);  
         des.IV  
    =    ASCIIEncoding.ASCII.GetBytes(sKey);  
         MemoryStream    ms  
    =  new    MemoryStream();  
         CryptoStream    cs  
    =  new    CryptoStream(ms,    des.CreateDecryptor(),CryptoStreamMode.Write);  
         cs.Write(inputByteArray,  
    0,    inputByteArray.Length);  
         cs.FlushFinalBlock();  

         StringBuilder    ret  
    =  new    StringBuilder();  
                 
       
    return    System.Text.Encoding.Default.GetString(ms.ToArray());  
        }

    -------------------------------------------------------------------------------

    using System;
    using System.Text;
    using System.Globalization;
    using System.Security.Cryptography;
    class DES
    {
    // 创建Key
    public string GenerateKey()
    {
    DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
    return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
    }
    // 加密字符串
    public string EncryptString(string sInputString, string sKey)
    {
    byte [] data = Encoding.UTF8.GetBytes(sInputString);
    DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
    DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
    DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
    ICryptoTransform desencrypt = DES.CreateEncryptor();
    byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
    return BitConverter.ToString(result);
    }
    // 解密字符串
    public string DecryptString(string sInputString, string sKey)
    {
    string [] sInput = sInputString.Split("-".ToCharArray());
    byte [] data = new byte[sInput.Length];
    for(int i = 0; i < sInput.Length; i++)
    {
    data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
    }
    DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
    DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
    DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
    ICryptoTransform desencrypt = DES.CreateDecryptor();
    byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
    return Encoding.UTF8.GetString(result);
    }
    }
    class Test
    {
    static void Main()
    {
    DES des = new DES();
    string key = des.GenerateKey();
    string s0 = "中国软件 - csdn.net";
    string s1 = des.EncryptString(s0, key);
    string s2 = des.DecryptString(s1, key);
    Console.WriteLine("原串: [{0}]", s0);
    Console.WriteLine("加密: [{0}]", s1);
    Console.WriteLine("解密: [{0}]", s2);
    }
    }
    /* 程序输出:
    原串: [中国软件 - csdn.net]
    加密: [E8-30-D0-F2-2F-66-52-14-45-9A-DC-C5-85-E7-62-9B-AD-B7-82-CF-A8-0A-59-77]
    解密: [中国软件 - csdn.net]
    */

    发表于 @ 2008年05月21日 17:19:53|评论(loading...)|编辑

    新一篇:  asp.net 强数据类型 asp.net 强数据类型 | 旧一篇: C#中TreeView组件使用方法

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © kong521