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

本文关键字:密码保护 文件 xml gzip 使用 | 更新日期: 2023-09-27 17:57:43

好了,伙计们,是时候问一个老问题了,如何使用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();
    } 

使用gzip对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文件有任何支持。你可以使用像DotNetZip这样的第三方库来帮助你。

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

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