主要代码
加密:
- #region 加密方法
- public bool EncryptFile(string filePath,string savePath,string keyStr)
- {
- DESCryptoServiceProvider des = new DESCryptoServiceProvider();
- if(keyStr=="")
- keyStr=key;
- FileStream fs=File.OpenRead(filePath);
- byte[] inputByteArray =new byte[fs.Length];
- fs.Read(inputByteArray,0,(int)fs.Length);
- fs.Close();
- byte[] keyByteArray=Encoding.Default.GetBytes(keyStr);
- SHA1 ha=new SHA1Managed();
- byte[] hb=ha.ComputeHash(keyByteArray);
- sKey=new byte[8];
- sIV=new byte[8];
- for(int i=0;i<8;i++)
- sKey[i]=hb[i];
- for(int i=8;i<16;i++)
- sIV[i-8]=hb[i];
- des.Key=sKey;
- des.IV=sIV;
- MemoryStream ms = new MemoryStream();
- CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);
- cs.Write(inputByteArray, 0, inputByteArray.Length);
- cs.FlushFinalBlock();
- fs=File.OpenWrite(savePath);
-
- foreach(byte b in ms.ToArray())
- {
- fs.WriteByte(b);
- }
- fs.Close();
- cs.Close();
- ms.Close();
- return true;
- }
- #endregion
#region 加密方法public bool EncryptFile(string filePath,string savePath,string keyStr) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); if(keyStr=="") keyStr=key; FileStream fs=File.OpenRead(filePath); byte[] inputByteArray =new byte[fs.Length]; fs.Read(inputByteArray,0,(int)fs.Length); fs.Close(); byte[] keyByteArray=Encoding.Default.GetBytes(keyStr); SHA1 ha=new SHA1Managed(); byte[] hb=ha.ComputeHash(keyByteArray); sKey=new byte[8]; sIV=new byte[8]; for(int i=0;i<8;i++) sKey[i]=hb[i]; for(int i=8;i<16;i++) sIV[i-8]=hb[i]; des.Key=sKey; des.IV=sIV; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); fs=File.OpenWrite(savePath); foreach(byte b in ms.ToArray()) { fs.WriteByte(b); } fs.Close(); cs.Close(); ms.Close(); return true; }#endregion
解密:
- #region 解密方法
- public bool DecryptFile(string filePath,string savePath,string keyStr)
- {
- DESCryptoServiceProvider des = new DESCryptoServiceProvider();
- if(keyStr=="")
- keyStr=key;
- FileStream fs=File.OpenRead(filePath);
- byte[] inputByteArray =new byte[fs.Length];
- fs.Read(inputByteArray,0,(int)fs.Length);
- fs.Close();
- byte[] keyByteArray=Encoding.Default.GetBytes(keyStr);
- SHA1 ha=new SHA1Managed();
- byte[] hb=ha.ComputeHash(keyByteArray);
- sKey=new byte[8];
- sIV=new byte[8];
- for(int i=0;i<8;i++)
- sKey[i]=hb[i];
- for(int i=8;i<16;i++)
- sIV[i-8]=hb[i];
- des.Key=sKey;
- des.IV=sIV;
- MemoryStream ms = new MemoryStream();
- CryptoStream cs = new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write);
- cs.Write(inputByteArray, 0, inputByteArray.Length);
- cs.FlushFinalBlock();
- fs=File.OpenWrite(savePath);
- foreach(byte b in ms.ToArray())
- {
- fs.WriteByte(b);
- }
- fs.Close();
- cs.Close();
- ms.Close();
- return true;
- }
- #endregion
#region 解密方法public bool DecryptFile(string filePath,string savePath,string keyStr) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); if(keyStr=="") keyStr=key; FileStream fs=File.OpenRead(filePath); byte[] inputByteArray =new byte[fs.Length]; fs.Read(inputByteArray,0,(int)fs.Length); fs.Close(); byte[] keyByteArray=Encoding.Default.GetBytes(keyStr); SHA1 ha=new SHA1Managed(); byte[] hb=ha.ComputeHash(keyByteArray); sKey=new byte[8]; sIV=new byte[8]; for(int i=0;i<8;i++) sKey[i]=hb[i]; for(int i=8;i<16;i++) sIV[i-8]=hb[i]; des.Key=sKey; des.IV=sIV; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); fs=File.OpenWrite(savePath); foreach(byte b in ms.ToArray()) { fs.WriteByte(b); } fs.Close(); cs.Close(); ms.Close(); return true; } #endregion
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。