使用gzip密码保护xml文件
|
好的,伙计们,这是一个古老的问题了,您如何使用C#密码保护xml文件?
我也已经使用C#手动创建了该文件(不是很重要),现在我需要对其进行密码保护,以便可以将其通过电子邮件发送给客户,任何建议,
另外,我尝试使用C#将xml文件放入zip文件中,并且这样做后文件会失去扩展名,并且它会使用我发现的每种方法来执行此操作,因此我真的想用密码保护原始文件。
我应该对此更加清楚,该文件永久丢失其扩展名,当最终用户解压缩该文件时,它不再是xml文件,它只是具有名称,没有关联或任何东西
好的,对此进行一些更改,已经指出了很多原因,因为XML只是文本而不是问题,所以它并没有得到密码保护,所以让我们更改一下它的压缩方式
FileStream sourceFile = File.OpenRead(@\"C:\\sample.xml\");
FileStream destFile = File.Create(@\"C:\\sample.zip\");
GZipStream compStream = new GZipStream(destFile, CompressionMode.Compress);
try
{
int theByte = sourceFile.ReadByte();
while (theByte != -1)
{
compStream.WriteByte((byte)theByte);
theByte = sourceFile.ReadByte();
}
}
finally
{
compStream.Dispose();
}
上面的这段代码压缩了文件,但是最终用户将文件解压缩后,文件将丢失其xml扩展名以及与它的文件关联
好的,我有一个更新,我弄清楚了如何防止文件丢失扩展名,如果我将输出文件名更改为sample.xml.zip,则系统会很好地处理它,只要输出文件出来就像读取这个,sample.xml.zip,但是winzip从来没有为打开它而bit之以鼻,7zip也没有,所以我对此非常满意,现在受密码保护的东西是我还没有想到的。
仅供参考,我的新代码。
FileStream sourceFile = File.OpenRead(@\"C:\\sample.xml\");
FileStream destFile = File.Create(@\"C:\\sample.xml.zip\");
GZipStream compStream = new GZipStream(destFile, CompressionMode.Compress);
try
{
int theByte = sourceFile.ReadByte();
while (theByte != -1)
{
compStream.WriteByte((byte)theByte);
theByte = sourceFile.ReadByte();
}
}
finally
{
compStream.Dispose();
}
没有找到相关结果
已邀请:
4 个回复
羔磺
习让休堂溯
变为
? 您对此无能为力,绝对没有。 xml文件是纯文本文件,如果不进行某种方式的加密,则无法通过密码保护文件。加密后,它不再是Xml文件,而是加密文件,解密后将生成Xml文件。 将您的xml文件加密为受密码保护的Zip文件是解决此问题的完美方法。 最终用户解压缩该zip文件后,他们将其视为Xml文件,然后一切正常。 希望这可以帮助。
慷祈霖黑
碧肮械淌设