.net des加密,解密

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

public static string _KEY = "HQDCKEY1";  //密钥
public static string _IV = "HQDCKEY2";   //向量

/**
 * 加密
 * data为需要加密的url
 **/
public static string Encode(string data)
{
    byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(_KEY);
    byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(_IV);

    DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
    int i = cryptoProvider.KeySize;
    MemoryStream ms = new MemoryStream();
    CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);

    StreamWriter sw = new StreamWriter(cst);
    sw.Write(data);
    sw.Flush();
    cst.FlushFinalBlock();
    sw.Flush();
    string strRet = Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
    return strRet;
}

/**
 * 解密
 * data为需要解密的url
 **/
public static string Decode(string data)
{
    byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(_KEY);
    byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(_IV);
    byte[] byEnc;

    try
    {
        data.Replace("_%_", "/");
        data.Replace("-%-", "#");
        byEnc = Convert.FromBase64String(data);
    }
    catch
    {
        return null;
    }

    DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
    MemoryStream ms = new MemoryStream(byEnc);
    CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
    StreamReader sr = new StreamReader(cst);
    return sr.ReadToEnd();
}

猜你喜欢

转载自blog.csdn.net/u012925792/article/details/82852779
今日推荐