2013-05-15 60 views
0

我正在使用DotNetZip使用密码将zip文件中的文件存档。DotNetZip密码错误

我使用的密码有144个随机字符。

using (var zip = new ZipFile()) 
{ 
    zip.Password = "144 characters password"; 
    zip.Encryption = EncryptionAlgorithm.WinZipAes256; 
    zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestSpeed; 

    zip.AddEntry("file1.xml", data); 

    zip.Save(file); 
} 

当我从后面的代码(指定密码)打开zip文件时,我可以得到里面的文件。

如果我使用WinRar打开存档并在那里设置密码,它会告诉我密码无效。

这个问题的原因是什么?它可能是因为密码长度太大?

+0

也许它与编码有关?你有没有尝试强制你的操作系统使用相同的编码? – Renan

+1

他们只是字符串中的数字,所以我不认为这是问题。无论如何,我已阅读[WinRar](http://www.winrar-tr.com/winrar/Help/ENG/html/HELPArcEncryption.htm),他们支持最多127个字符 – Catalin

+0

很高兴知道这一点。然而,出于好奇,为什么你需要一个很大的密码?你是否想挑战道格拉斯亚当的深思? – Renan

回答

3

你倒霉了。根据他们的Web site,WinRAR仅支持AES-128而不支持AES-256。

WinRAR为您提供了利用AES(高级加密标准)和128位密钥的行业优势存档加密的优势。

更新:显然,WinRAR 5.0 beta支持AES-256。

+0

不,恐怕密码长度太大。他们有最多127个字符的密码。 [链接](http://www.winrar-tr.com/winrar/Help/ENG/html/HELPArcEncryption.htm) – Catalin

+0

@RaraituL:它肯定可能是两个,虽然你给的链接谈论限制*。 rar *文件(而不是.zip文件)。 –