/// <summary>
/// 加密文件
/// </summary>
/// <param name="sInputFilename"></param>
/// <param name="sOutputFilename"></param>
/// <param name="sKey"></param>
public static void EncryptFile(string sInputFilename, string sOutputFilename)
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = System.Text.Encoding.UTF8.GetBytes(sKey);
DES.IV = System.Text.Encoding.UTF8.GetBytes(sKey); byte[] btFile = File.ReadAllBytes(sInputFilename); using (FileStream fsread = new FileStream(sOutputFilename, FileMode.Open, FileAccess.Write) )
{
ICryptoTransform desdecrypt = DES.CreateEncryptor();
CryptoStream cryptostreamDecr = new CryptoStream(fsread, desdecrypt, CryptoStreamMode.Write);
cryptostreamDecr.Write(btFile, 0, btFile.Length);
cryptostreamDecr.FlushFinalBlock();
cryptostreamDecr.Close();
fsread.Close();
}
} /// <summary>
/// 解密文件
/// </summary>
/// <param name="sInputFilename"></param>
/// <param name="sOutputFilename"></param>
/// <param name="sKey"></param>
public static void DecryptFile(string sInputFilename, string sOutputFilename)
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = System.Text.Encoding.UTF8.GetBytes(sKey);
DES.IV = System.Text.Encoding.UTF8.GetBytes(sKey); byte[] btFile = File.ReadAllBytes(sInputFilename); using (FileStream fsread = new FileStream(sOutputFilename, FileMode.Open, FileAccess.Write))
{
ICryptoTransform desdecrypt = DES.CreateDecryptor();
CryptoStream cryptostreamDecr = new CryptoStream(fsread, desdecrypt, CryptoStreamMode.Write);
cryptostreamDecr.Write(btFile, 0, btFile.Length);
cryptostreamDecr.FlushFinalBlock();
cryptostreamDecr.Close();
fsread.Close();
}
}des
改成:
FileMode.Create长度100文件用FileMode.Open打开后写入90字节,前90字节被覆盖,但文件长度将还是100。