`

C#MD5加密解密

    博客分类:
  • C#
阅读更多
using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
public class DES
{
    private string key = "";
    /// <summary>
    /// key
    /// </summary>
    public string Key
    {
        get { return key; }
        set { key = value; }
    }
    // 创建Key
    public string GenerateKey()
    {
        DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
        return key = ASCIIEncoding.ASCII.GetString(desCrypto.Key);
    }
    /// <summary>
    /// 加密
    /// </summary>
    /// <param name="name"></param>
    /// <returns></returns>
    public string MD5Enc(string name)
    {
        return this.EncryptString(name,key);
    }

    /// <summary>
    /// 解密
    /// </summary>
    /// <param name="name"></param>
    /// <returns></returns>
    public string MD5Dnc(string name)
    {
        return this.DecryptString(name, 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);
//        des.Key;为当时的key...
//    }
//}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics