问题 部分文件加密

朗文

新成员
已加入
2014年4月24日
留言内容
1
编程经验
Beginner
今天是个好日子,
我正在使用文件加密进行一些工作,并且想要进行部分文件加密。
假设我有带有数据的文本文件:
123456789999999888844565452并且只希望加密文件的一部分
xxxxxxxxxx999999888844565452-其中x加密部分。

我该怎么做?
我尝试这样做,但是一切都失败了,因为解密算法抛出时"invalid password" error.
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
您实际上并没有加密文件。您加密数据。然后,您完全可以根据自己的需要来处理这些数据。您可以根据需要写入文件,也可以对文件进行其他操作。如果您有一些文本,并且想要对部分文本进行加密,那么这就是您要做的。您将部分纯文本写入文件,然后加密部分文本并将结果写入文件,然后将其余文本写入文件。要将文本写入任何Stream,请使用StreamWriter,并使用CryptoStream加密数据。这意味着要编写纯文本,然后是加密数据,然后再编写纯文本,您需要在FileStream顶部创建一个StreamWriter,然后在FileStream顶部的CryptoStream顶部创建一个StreamWriter,然后在再次FileStream。您需要自己填写详细信息,但这是一个简单的示例,说明了如何执行此操作:
private void WriteTextToStream(string text, Stream stream)
{
    using (var writer = new StreamWriter(stream))
    {
        writer.WriteLine(text);
    }
}
using (var file = new FileStream(filePath, FileMode.Create))
{
    this.WriteTextToStream("First Line", file);
}

using (var file = new FileStream(filePath, FileMode.Append))
using (var encryptor = new CryptoStream(file, transform, CryptoStreamMode.Write))
{
    this.WriteTextToStream("Second Line", encryptor);
}

using (var file = new FileStream(filePath, FileMode.Append))
{
    this.WriteTextToStream("Third Line", file);
}
回读文件基本上是相同的,除了您将使用StreamReader而不是StreamWriter。您还需要确切地知道每个部分要读取的内容,因此您必须提前知道这一点,或者必须能够从文件中读取它。
 
最佳 底部