C# 使用gzip对xml文件进行密码保护

C# 使用gzip对xml文件进行密码保护,c#,xml,zip,password-protection,file-association,C#,Xml,Zip,Password Protection,File Association,好了,伙计们,是时候问一个古老的问题了,如何使用C对xml文件进行密码保护? 我已经用C语言创建了这个文件,现在我需要对它进行密码保护,这样我就可以通过电子邮件发送给客户,有什么建议吗 此外,我还尝试使用C将xml文件放入zip文件,这样做时,文件的扩展名将丢失,我找到的每个方法都会这样做,所以我真的只想对原始文件进行密码保护 我应该更清楚的是,这个文件永久地失去了扩展名,当最终用户解压它时,它不再是一个xml文件,它只是一个有名称的文件,没有关联或任何东西 好的,稍微改变一下,有人指出xml没

好了,伙计们,是时候问一个古老的问题了,如何使用C对xml文件进行密码保护? 我已经用C语言创建了这个文件,现在我需要对它进行密码保护,这样我就可以通过电子邮件发送给客户,有什么建议吗

此外,我还尝试使用C将xml文件放入zip文件,这样做时,文件的扩展名将丢失,我找到的每个方法都会这样做,所以我真的只想对原始文件进行密码保护

我应该更清楚的是,这个文件永久地失去了扩展名,当最终用户解压它时,它不再是一个xml文件,它只是一个有名称的文件,没有关联或任何东西

好的,稍微改变一下,有人指出xml没有密码保护,因为它只是文本,不是问题,所以让我们改变一下,它的ziping如何

    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();
    } 
这样一来,锉刀就松了 是分机

什么意思,文件名从MyXMLFile.xml更改为MyXMLFile.zip? 你对此无能为力,绝对无能为力

xml文件是纯文本文件,如果不对其进行加密,则无法对其进行密码保护。一旦你加密了它,它就不再是一个Xml文件了,它是一个加密的文件,解密后会产生一个Xml文件

将xml文件加密为受密码保护的Zip文件是解决此问题的一个非常好的解决方案

一旦最终用户解压了zip文件,他们会将其视为Xml文件,然后一切都会正常

希望这有帮助

这样一来,锉刀就松了 是分机

什么意思,文件名从MyXMLFile.xml更改为MyXMLFile.zip? 你对此无能为力,绝对无能为力

xml文件是纯文本文件,如果不对其进行加密,则无法对其进行密码保护。一旦你加密了它,它就不再是一个Xml文件了,它是一个加密的文件,解密后会产生一个Xml文件

将xml文件加密为受密码保护的Zip文件是解决此问题的一个非常好的解决方案

一旦最终用户解压了zip文件,他们会将其视为Xml文件,然后一切都会正常


希望这有帮助。

加密文件然后解密是一种选择。提供一些关于加密和解密的信息。

加密文件然后解密是一种选择。提供一些关于加密和解密的信息。

您不能像使用Word文档那样对XML文件进行密码保护。之所以可以在Word文档上放置密码,是因为Word和其他可能读取Word文档的程序都支持密码保护。没有什么可以阻止程序完全忽略密码,除非文件以某种方式使用密码作为密钥生成器进行加密

XML文件只是文本文件。如果不将它们放置在受密码保护的容器(如zip文件)中,则无法进行密码保护。当您压缩XML文件时,它被放置在扩展名为.zip的zip存档中,以指示它是一个zip文件

然后由接收zip文件的人提供正确的密码,以便解压缩zip文件并检索原始XML文件


我认为.NET不支持管理.zip文件。您可以使用类似的第三方库来帮助您实现这一点。

您不能像使用Word文档那样对XML文件进行密码保护。之所以可以在Word文档上放置密码,是因为Word和其他可能读取Word文档的程序都支持密码保护。没有什么可以阻止程序完全忽略密码,除非文件以某种方式使用密码作为密钥生成器进行加密

XML文件只是文本文件。如果不将它们放置在受密码保护的容器(如zip文件)中,则无法进行密码保护。当您压缩XML文件时,它被放置在扩展名为.zip的zip存档中,以指示它是一个zip文件

然后由接收zip文件的人提供正确的密码,以便解压缩zip文件并检索原始XML文件

我认为.NET不支持管理.zip文件。你可以用

第三方库希望能帮助您完成此任务。

我认为一个好的选择是压缩它并对压缩文件进行密码保护。不是xml。像dotnetzip这样的库可以实现这一点,而且非常简单

我认为一个好的选择是压缩它并对压缩文件进行密码保护。不是xml。像dotnetzip这样的库可以实现这一点,而且非常简单

密码保护文件是什么意思?XML文件只是文本。是的,你是对的,这是我没有直接思考的问题,所以我编辑了这个问题。上面的代码没有压缩文件,即创建有效的压缩存档。它所做的是创建一个扩展名为.zip的gzip压缩文件。Zip文件不仅仅是一个压缩文件,它们有一个内部目录结构,可以跟踪存储在其中的文件。那么,对于创建一个有效的Zip存档,我可以对其进行密码保护,有什么建议吗?密码保护文件是什么意思?XML文件只是文本。是的,你是对的,这是我没有直接思考的问题,所以我编辑了这个问题。上面的代码没有压缩文件,即创建有效的压缩存档。它所做的是创建一个扩展名为.zip的gzip压缩文件。Zip文件不仅仅是一个压缩文件,它们有一个内部目录结构,可以跟踪存储在其中的文件。那么,对于创建一个有效的Zip存档,我可以使用密码进行保护,有什么建议吗?对不起,我应该更清楚地说,当最终用户解压缩该文件时,该文件会永久丢失其扩展名,它不再是一个xml文件,它只是一个有名称的文件,没有关联或任何东西。然后你需要向我们展示你的代码来压缩文件。你能编辑这个问题并给我们看代码吗?谢谢,p.s.将示例代码缩减为尽可能少的代码,您显示的代码越少,相关性越强,您就越有可能获得良好的响应rry我应该更清楚这一点,文件永久性地丢失了扩展名,当最终用户解压缩时,它不再是xml文件,它只是一个有名称的文件,没有关联或任何东西。然后你需要向我们展示你的代码来压缩文件。你能编辑这个问题并给我们看代码吗?谢谢,p.s.将示例代码缩减为尽可能少的代码,您显示的代码越少,相关性越强,您就越有可能获得良好的响应。谢谢您的想法,但不幸的是,我的最终用户不会安装程序来实现这一点,他们可能只有zip,因此,我将问题改为将文件放入zip文件中。再次感谢你的链接,非常好的信息。谢谢你的想法,但不幸的是,我的最终用户不会安装程序来完成这项工作,他们可能只有zip文件,所以我将问题改为将文件放在zip文件中。再次感谢您提供的链接,非常好的信息。是的,我相信这将是解决整个混乱的最佳解决方案,我仍然存在zip文件破坏xml文件扩展名的问题,当最终用户解压缩文件时,文件关联就消失了。谢谢是的,我相信这将是解决整个混乱的最佳解决方案,我仍然有一个问题,zip文件破坏了xml文件的文件扩展名,当最终用户解压缩文件时,文件关联就消失了。非常感谢。