无法使用 Rebex 库正确创建受密码保护的 zip 文件
Unable to properly create the password protected zip file using Rebex library
我正在尝试使用 Rebex 库创建受密码保护的 zip 文件。
这是我使用的代码
using (ZipArchive zip = new ZipArchive(ZipFilePath, ArchiveOpenMode.Create))
{
// Set the Password first
zip.Password = strUserPIN;
// Change the default Encryption algorithm
zip.EncryptionAlgorithm = EncryptionAlgorithm.Aes256;
// Add the file to newly created "files" folder within the zip file
zip.AddFile(Temp_BPI_SaveLocation + strDataFilewithTimeStamp, @"\files\");
//Save the Zip file
zip.Save();
// cloase the zip file
zip.Close();
}
但是,当我尝试打开文件时,我没有看到预期的 'Password needed' 对话框。
相反,我收到的错误消息是 'Windows cannot complete the extraction. The destination file could not be created'
我确实需要获得预期的 'Password needed' 对话框,以便我可以正确提取文件
有没有人处理过这个问题并找到了解决方案?
更新:
客户端使用 Windows OS 内置 ZIP 提取器提取生成的 ZIP 存档。不幸的是,Windows OS 提取器无法进行 AES
加密,这导致了上述错误。可以在 Rebex forum.
找到更多详细信息和可能的解决方案
错误'Windows cannot complete the extraction. The destination file could not be created'表示文件名包含一些对当前平台无效的字符。在您的示例代码中,您使用 strDataFilewithTimeStamp
作为文件名参数,其中可能包含冒号“:”,这是 Windows.
上文件名的无效字符
这取决于提取器在这种情况下将显示什么(密码对话框或错误)。
要解决此问题,请确保文件名不包含任何 Windows 上的无效字符(请检查 Windows 平台上的 System.IO.Path.GetInvalidFileNameChars()
方法)。
这是我从 Rebex 论坛接受的答案
”这表明问题出在Windows 提取器本身。您正在使用 EncryptionAlgorithm.Aes256 加密 ZIP 存档,这是一个不错的选择,但 [=20= 不支持此加密算法] 提取器(请检查 this and this)。
提取器唯一支持的加密算法Windows是旧版EncryptionAlgorithm.Zip20算法,目前不安全(您可以查看here)。
建议的解决方案是使用 EncryptionAlgorithm.Aes256 算法来保护 ZIP 存档并使用第三方应用程序来提取它。"
我正在尝试使用 Rebex 库创建受密码保护的 zip 文件。
这是我使用的代码
using (ZipArchive zip = new ZipArchive(ZipFilePath, ArchiveOpenMode.Create))
{
// Set the Password first
zip.Password = strUserPIN;
// Change the default Encryption algorithm
zip.EncryptionAlgorithm = EncryptionAlgorithm.Aes256;
// Add the file to newly created "files" folder within the zip file
zip.AddFile(Temp_BPI_SaveLocation + strDataFilewithTimeStamp, @"\files\");
//Save the Zip file
zip.Save();
// cloase the zip file
zip.Close();
}
但是,当我尝试打开文件时,我没有看到预期的 'Password needed' 对话框。
相反,我收到的错误消息是 'Windows cannot complete the extraction. The destination file could not be created'
我确实需要获得预期的 'Password needed' 对话框,以便我可以正确提取文件
有没有人处理过这个问题并找到了解决方案?
更新:
客户端使用 Windows OS 内置 ZIP 提取器提取生成的 ZIP 存档。不幸的是,Windows OS 提取器无法进行 AES
加密,这导致了上述错误。可以在 Rebex forum.
错误'Windows cannot complete the extraction. The destination file could not be created'表示文件名包含一些对当前平台无效的字符。在您的示例代码中,您使用 strDataFilewithTimeStamp
作为文件名参数,其中可能包含冒号“:”,这是 Windows.
这取决于提取器在这种情况下将显示什么(密码对话框或错误)。
要解决此问题,请确保文件名不包含任何 Windows 上的无效字符(请检查 Windows 平台上的 System.IO.Path.GetInvalidFileNameChars()
方法)。
这是我从 Rebex 论坛接受的答案
”这表明问题出在Windows 提取器本身。您正在使用 EncryptionAlgorithm.Aes256 加密 ZIP 存档,这是一个不错的选择,但 [=20= 不支持此加密算法] 提取器(请检查 this and this)。
提取器唯一支持的加密算法Windows是旧版EncryptionAlgorithm.Zip20算法,目前不安全(您可以查看here)。
建议的解决方案是使用 EncryptionAlgorithm.Aes256 算法来保护 ZIP 存档并使用第三方应用程序来提取它。"