/// <summary> /// 文件加密 /// </summary> public class FileEncryptDecrypt { /// <summary> /// 加密字符 /// </summary> private static string key = "KANGJINW"; /// <summary> /// 将密钥加密写入到文件 /// </summary> /// <param name="sInputFilename">密密钥</param> /// <param name="sOutputFilename">密钥文件路径</param> /// <param name="sKey"></param> private static void EncryptFile(string sInputFilename,string sOutputFilename,string sKey) { FileStream fsEncrypted = new FileStream(sOutputFilename,FileMode.Create, FileAccess.Write); DESCryptoServiceProvider DES = new DESCryptoServiceProvider(); DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey); DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey); ICryptoTransform desencrypt = DES.CreateEncryptor(); CryptoStream cryptostream = new CryptoStream(fsEncrypted, desencrypt, CryptoStreamMode.Write); byte[] fsInput = System.Text.Encoding.Default.GetBytes(sInputFilename); cryptostream.Write(fsInput, 0, fsInput.Length); cryptostream.Close(); fsEncrypted.Close(); } /// <summary> /// 打开密钥文件 /// </summary> /// <param name="sInputFilename">密钥路径</param> /// <param name="sKey"></param> static string DecryptFile(string sInputFilename, string sKey) { DESCryptoServiceProvider DES = new DESCryptoServiceProvider(); DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey); DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey); FileStream fsread = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read); ICryptoTransform desdecrypt = DES.CreateDecryptor(); CryptoStream cryptostreamDecr = new CryptoStream(fsread, desdecrypt, CryptoStreamMode.Read); StreamReader read = new StreamReader(cryptostreamDecr, System.Text.Encoding.Default); string reft = read.ReadToEnd(); fsread.Flush(); fsread.Close(); return reft; } /// <summary> /// 加密文件 /// </summary> /// <param name="filename">文件存放路径</param> /// <param name="soce">加密内容</param> public static void Encrypt(string filename, string soce) { try { EncryptFile(soce, filename, key); } catch (Exception ex) { throw ex; } } /// <summary> /// 解密文件 /// </summary> /// <param name="filename">打开文件路径</param> /// <returns>返回加密文件的内容</returns> public static string Decrypt(string filename) { try { return DecryptFile(filename, key); } catch (Exception ex) { throw ex; } } }