分享

c# winform 文件内容的加密解密

 mylore 2011-11-29
主要代码

加密:
C#代码 复制代码 收藏代码
  1. #region 加密方法   
  2. public bool EncryptFile(string filePath,string savePath,string keyStr)    
  3. {    
  4.     DESCryptoServiceProvider des = new DESCryptoServiceProvider();    
  5.     if(keyStr=="")    
  6.         keyStr=key;    
  7.     FileStream fs=File.OpenRead(filePath);    
  8.     byte[] inputByteArray =new byte[fs.Length];    
  9.     fs.Read(inputByteArray,0,(int)fs.Length);    
  10.     fs.Close();    
  11.     byte[] keyByteArray=Encoding.Default.GetBytes(keyStr);    
  12.     SHA1 ha=new SHA1Managed();    
  13.     byte[] hb=ha.ComputeHash(keyByteArray);    
  14.     sKey=new byte[8];    
  15.     sIV=new byte[8];    
  16.     for(int i=0;i<8;i++)    
  17.         sKey[i]=hb[i];    
  18.     for(int i=8;i<16;i++)    
  19.         sIV[i-8]=hb[i];    
  20.     des.Key=sKey;    
  21.     des.IV=sIV;    
  22.     MemoryStream ms = new MemoryStream();    
  23.     CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);    
  24.     cs.Write(inputByteArray, 0, inputByteArray.Length);    
  25.     cs.FlushFinalBlock();    
  26.     fs=File.OpenWrite(savePath);    
  27.   
  28.     foreach(byte b in ms.ToArray())    
  29.     {    
  30.         fs.WriteByte(b);               
  31.     }                      
  32.     fs.Close();    
  33.     cs.Close();    
  34.     ms.Close();    
  35.     return true;    
  36. }  
  37. #endregion  


解密:
C#代码 复制代码 收藏代码
  1. #region 解密方法   
  2. public bool DecryptFile(string filePath,string savePath,string keyStr)    
  3. {    
  4.     DESCryptoServiceProvider des = new DESCryptoServiceProvider();    
  5.     if(keyStr=="")    
  6.         keyStr=key;    
  7.     FileStream fs=File.OpenRead(filePath);    
  8.     byte[] inputByteArray =new byte[fs.Length];    
  9.     fs.Read(inputByteArray,0,(int)fs.Length);    
  10.     fs.Close();    
  11.     byte[] keyByteArray=Encoding.Default.GetBytes(keyStr);    
  12.     SHA1 ha=new SHA1Managed();    
  13.     byte[] hb=ha.ComputeHash(keyByteArray);    
  14.     sKey=new byte[8];    
  15.     sIV=new byte[8];    
  16.     for(int i=0;i<8;i++)    
  17.         sKey[i]=hb[i];    
  18.     for(int i=8;i<16;i++)    
  19.         sIV[i-8]=hb[i];    
  20.     des.Key=sKey;    
  21.     des.IV=sIV;    
  22.     MemoryStream ms = new MemoryStream();    
  23.     CryptoStream cs = new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write);    
  24.     cs.Write(inputByteArray, 0, inputByteArray.Length);    
  25.     cs.FlushFinalBlock();    
  26.     fs=File.OpenWrite(savePath);    
  27.     foreach(byte b in ms.ToArray())    
  28.     {    
  29.         fs.WriteByte(b);    
  30.     }    
  31.     fs.Close();    
  32.     cs.Close();    
  33.     ms.Close();    
  34.     return true;    
  35.  
  36. #endregion  


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约