通过密码保护文件

时间:2013-09-30 09:05:16

标签: c# winforms file io password-protection

我有一个C#应用程序,我想在其中创建一个文件:

   string fileName = "test.txt";  // a sample file name
        // Delete the file if it exists.
        if (System.IO.File.Exists(fileName))
        {
            System.IO.File.Delete(fileName);
        }
       // Create the file.
        using (System.IO.FileStream fs = System.IO.File.Create(fileName, 1024))
        {
            // Add some information to the file.
            byte[] info = new System.Text.UTF8Encoding(true).GetBytes("This is some text in the file.");
            fs.Write(info, 0, info.Length);
        }


        string s = "";
        using (System.IO.StreamReader sr = System.IO.File.OpenText(fileName))
        {

            while ((s = sr.ReadLine()) != null)
            {
                textBox1.Text += s;
            }
        }

我需要通过程序外的密码来保护文件,并且可以在程序内部访问该文件而无需密码。

如何更改代码段以执行此任务?

2 个答案:

答案 0 :(得分:3)

您无法使用开箱即用的密码保护文本文件。 您需要使用其他应用程序对其进行封装。

最简单的方法是使用Zip文件。

post Cheeso使用DotNetZip

开始
using (var zip = new ZipFile())
{
    zip.Password= "VerySecret!!";
    zip.AddFile("test.txt");
    zip.Save("Archive.zip"); 
}

这导致了两个步骤。

  1. 创建文件
  2. 拉链并选择密码。

答案 1 :(得分:1)

如果您不想创建压缩/解压缩的zip文件,也可以加密文件。

Simple Encryption/Decryption method for encrypting an image file

http://support.microsoft.com/kb/307010