C#實(shí)現(xiàn)Des加密和解密代碼

字號(hào):


    using System;
    using System.IO;
    using System.Security.Cryptography;
    namespace Vavic
    {
    ///
    /// Security 的摘要說明。
    ///
    public class Security
    {
    const string KEY_64 = "VavicApp";
    const string IV_64 = "VavicApp"; //注意了,是8個(gè)字符,64位
    public Security()
    {
    //
    // TODO: 在此處添加構(gòu)造函數(shù)邏輯
    //
    }
    public static string Encode(string data)
    {
    byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
    byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
    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();
    return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);
    }
    public static string Decode(string data)
    {
    byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
    byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
    byte[] byEnc;
    try
    {
    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();
    }
    }
    }