gpt4 book ai didi

c# - 使用 gzip 密码保护 xml 文件

转载 作者:太空宇宙 更新时间:2023-11-03 18:43:59 26 4
gpt4 key购买 nike

好的,伙计们,现在是时候回答这个古老的问题了,你如何使用 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 从来没有讨厌打开它,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();
}

最佳答案

and upon doing this the file looses it's extension

什么意思,文件名从MyXMLFile.xml变成了MyXMLFile.zip
你对此无能为力,绝对没有。

一个 xml 文件是一个纯文本文件,你不能密码保护文件而不以某种方式加密它。加密后,它不再是 Xml 文件,而是加密文件,解密后将生成 Xml 文件。

将您的 xml 文件加密为受密码保护的 Zip 文件是解决此问题的完美解决方案。

一旦最终用户解压缩 zip 文件,他们就会将其视为一个 Xml 文件,然后一切都会好起来的。

希望这对您有所帮助。

关于c# - 使用 gzip 密码保护 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6126256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com