//要加密的檔案,加密後的檔案,加密的key值
public static bool DescryptDES(string inf, string ouf, string encrypKey)
{
byte[] rgbIv = Keys; //加密的IV向量,使用者自己定義一個,這裡就沒直接給出{0x25}
byte[] rgbKey = Encoding.UTF8.GetBytes(encrypKey.Substring(0, 8));
FileStream infs = new FileStream(inf, FileMode.Open, FileAccess.Read);
FileStream outfs = new FileStream(ouf, FileMode.OpenOrCreate, FileAccess.Write);
//讀的流放一個位置,我們知道讀的流都是二進位的
byte[] bytein = new byte[100];
long readLen = 0;
long toatalLen = inf.Length;
int erentLen;//每次讀的步長
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
CryptoStream encStream = new CryptoStream(outfs, des.CreateEncryptor(rgbKey, rgbIv), CryptoStreamMode.Write);
while(readLen<toatalLen)
{
erentLen= infs.Read(bytein, 0, 100);//每次讀取的布長,因為他都迴圈
encStream.Write(bytein, 0, erentLen);
readLen = readLen + erentLen;
}
encStream.Close();
infs.Close();
outfs.Close();
return true; //加密成功
}