我的代码是这样的
/// <summary>
/// 加密文件
/// </summary>
/// <param name="sInputFilename"></param>
/// <param name="sOutputFilename"></param>
/// <param name="sKey"></param>
public static void EncryptFile(string sInputFilename,string sOutputFilename, string sKey)
{
FileStream fsInput = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read); 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[] bytearrayinput = new byte[fsInput.Length];
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Close();
fsInput.Close();
fsEncrypted.Close();
}
/// <summary>
/// 把一个加密文件解密成另一个文件
/// </summary>
/// <param name="sInputFilename"></param>
/// <param name="sOutputFilename"></param>
/// <param name="sKey"></param>
public static void DecryptFile(string sInputFilename, string sOutputFilename,string sKey)
{
FileStream fsread = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read);
StreamWriter fsDecrypted = new StreamWriter(sOutputFilename);
try
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
//A 64 bit key and IV is required for this provider.
//Set secret key For DES algorithm.
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
//Set initialization vector.
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey); //Create a file stream to read the encrypted file back.
//Create a DES decryptor from the DES instance.
ICryptoTransform desdecrypt = DES.CreateDecryptor();
//Create crypto stream set to read and do a
//DES decryption transform on incoming bytes.
CryptoStream cryptostreamDecr = new CryptoStream(fsread, desdecrypt,CryptoStreamMode.Read);
//Print the contents of the decrypted file.
fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
fsDecrypted.Flush();
cryptostreamDecr.Close();
fsDecrypted.Close();
fsread.Close(); }
catch(Exception e1)
{
fsread.Close();
fsDecrypted.Close();
}
}
要加解密的是含有全角,半角的excel文件,或图片文件
/// <summary>
/// 加密文件
/// </summary>
/// <param name="sInputFilename"></param>
/// <param name="sOutputFilename"></param>
/// <param name="sKey"></param>
public static void EncryptFile(string sInputFilename,string sOutputFilename, string sKey)
{
FileStream fsInput = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read); 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[] bytearrayinput = new byte[fsInput.Length];
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Close();
fsInput.Close();
fsEncrypted.Close();
}
/// <summary>
/// 把一个加密文件解密成另一个文件
/// </summary>
/// <param name="sInputFilename"></param>
/// <param name="sOutputFilename"></param>
/// <param name="sKey"></param>
public static void DecryptFile(string sInputFilename, string sOutputFilename,string sKey)
{
FileStream fsread = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read);
StreamWriter fsDecrypted = new StreamWriter(sOutputFilename);
try
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
//A 64 bit key and IV is required for this provider.
//Set secret key For DES algorithm.
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
//Set initialization vector.
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey); //Create a file stream to read the encrypted file back.
//Create a DES decryptor from the DES instance.
ICryptoTransform desdecrypt = DES.CreateDecryptor();
//Create crypto stream set to read and do a
//DES decryption transform on incoming bytes.
CryptoStream cryptostreamDecr = new CryptoStream(fsread, desdecrypt,CryptoStreamMode.Read);
//Print the contents of the decrypted file.
fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
fsDecrypted.Flush();
cryptostreamDecr.Close();
fsDecrypted.Close();
fsread.Close(); }
catch(Exception e1)
{
fsread.Close();
fsDecrypted.Close();
}
}
要加解密的是含有全角,半角的excel文件,或图片文件
解决方案 »
- 关于大量事件(event)的优化
- 如何开发一个服务项目应用程序?关于 windows service 相关的
- 老问题 上传大文件
- .net中进行AUTOCAD二次开发,如何新增菜单?
- 对引用类型而言,使用ref和不使用ref的区别是什么???
- Listview 问题求解
- 求救各位高手,App_Licenses.dll文件的问题
- dataGrid 数据显示问题!
- 求救 我的Microsoft Visual Studio .NET 设置断点不好用?
- 从数据库里获得的是Employee_ID和Employee_Name,下拉控件能否保留这两个值?谢谢!
- 关于SQL Server 的链接服务器的设置: 用SQL Server 连接Access 数据库时应该如何做?步骤?谢谢!
- 使用SharpZiplib压缩解压的时候添加密码会出错,何解?
应该是字符行的8位