MD5,3DES 32位加密

来源:互联网 发布:arm linux系统 编辑:程序博客网 时间:2024/05/19 21:44

using System.Security.Cryptography;

    /// <summary>
    /// MD5 32位加密
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    private string UserMd5(string str)
    {
        //return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5");
        string cl = str;
        string pwd = "";
        MD5 md5 = MD5.Create();//实例化一个md5对像
        // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
        byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
        // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
        for (int i = 0; i < s.Length; i++)
        {
            // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
            pwd = pwd + s[i].ToString("x2");

        }
        return pwd;       
    }

 

3DES加解密:

using System.Security.Cryptography;

public static string DESDecrypt(string strCipher, string strDESKey, string strDESIV){    byte[] bytes = Encoding.UTF8.GetBytes(strDESKey);    byte[] buffer2 = Encoding.UTF8.GetBytes(strDESIV);    byte[] buffer = Convert.FromBase64String(strCipher);    TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();    provider.Key = bytes;    provider.IV = buffer2;    provider.Mode = CipherMode.CBC;    provider.Padding = PaddingMode.PKCS7;    MemoryStream stream = new MemoryStream(buffer);    CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Read);    StreamReader reader = new StreamReader(stream2);    string str = reader.ReadLine();    reader.Close();    stream2.Close();    stream.Close();    return str;}

public static string DESEncrypt(string pToEncrypt, string sKey, string sKeyIV){    TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();    byte[] bytes = Encoding.UTF8.GetBytes(pToEncrypt);    provider.Key = Encoding.UTF8.GetBytes(sKey);    provider.IV = Encoding.UTF8.GetBytes(sKeyIV);    provider.Mode = CipherMode.CBC;    provider.Padding = PaddingMode.PKCS7;    MemoryStream stream = new MemoryStream();    CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);    StreamWriter writer = new StreamWriter(stream2);    writer.WriteLine(pToEncrypt);    writer.Close();    stream2.Close();    byte[] inArray = stream.ToArray();    stream.Close();    return Convert.ToBase64String(inArray);}
原创粉丝点击