C#加密解密文件 下载本文

内容发布更新时间 : 2024/5/5 2:39:58星期一 下面是文章的全部内容请认真阅读。

C#加密解密文件

C#加密解密文件[转] 2008年06月26日 星期四 15:57

加密文件

要加密文件,请按照下列步骤操作:

1. 启动 Visual Studio 2005 或 Visual Studio .NET。 2. 单击“项目”下的“Visual C#”,然后单击“模板”下的“控制台应用程序”。Visual C# .NET 为您创建一个静态类,以及一个空的 Main() 过 程。

3. 对以下命名空间使用 using 语句(如以下示例代码中所示): • System • System.Security

• System.Security.Cryptography • System.Text • System.IO

这样,在后面的代码中就不必从这些命名空间中限定声明了。这些语句必须位于任何其他声明之前。using System; using System.IO; using System.Security;

using System.Security.Cryptography; using System.Runtime.InteropServices; using System.Text;

4. 生成密钥以加密和解密数据。

DESCryptoServiceProvider 基于一种对称加密算法。对称加密需要密钥和初始化矢量 (IV) 来加密数据。要解密该数 据,您必须拥有此同一密钥和 IV。您还必须使用相同的加密算法。您可以使用下列方法之一生成密钥: • 方法 1 您可以提示用户输入密码。然后, 将此密码用作密钥和 IV。

• 方法 2 当您创建对称加密类的新实例时,将为会话自动创建一个新的密钥和 IV。使用由受管理的对称加密类生成的密钥和 IV 来加密和解密文件。5. 添加以下函数为会话生成一个新的密钥(按照步骤 4 的方法 2 中的说明):// Call this function to remove the key from memory after use for security.

[System.Runtime.InteropServices.DllImport(\LL\

public static extern bool ZeroMemory(ref string Destination, int Length);// Function to Generate a 64 bits Key. static string GenerateKey() {

// Create an instance of Symetric Algorithm. Key and IV is generated automatically.

DESCryptoServiceProvider desCrypto

=(DESCryptoServiceProvider)DESCryptoServiceProvider.Create();

// Use the Automatically generated key for Encryption. return ASCIIEncoding.ASCII.GetString(desCrypto.Key); }

6. 在您的类中创建一个命名为 EncryptFile 的方法。EncryptFile 类必须具有以下 3 个参数: • sInputFilename

• sOutputFilename

• sKey(用于加密和解密文件的密钥。) static void EncryptFile(string sInputFilename, string sOutputFilename, string sKey)

7. 在 EncryptFile 过程中,创建一个输入 FileStream 对象和一个输出 FileStream 对象。这些对象可以从目标文