PHP:使用自定义密码对 ZIP 存档进行编码时使用哪个 ZipArchive::EM_ 常量

我有一个关于使用密码编码 zip 文件的问题,可以从 PHP v 7.2 获得

当我使用方法 ZipArchive::setEncryptionName对 ZIP 进行编码时

有参数方法可以是:

  • 压缩存档::EM_AES_128

  • ZipArchive::EM_AES_192

  • ZipArchive::EM_AES_256

有人可以告诉我/解释使用哪个以及为什么吗?

我现在正在使用ZipArchive::EM_AES_256,因为我希望它是最安全的,但我的同事告诉我他无法打开它(他的 zip 软件甚至不要求输入密码)。

那么有没有一种适用于所有情况的方法?我们有很多人在我国使用的软件,很多老人可能会得到这些 ZIP 文件,并且要求它们可以打开并且每个 zip 文件都有密码。

请考虑他们甚至可能使用 Windows XP 等。


红糖糍粑
浏览 173回答 1
1回答

慕桂英4014372

根据您的评论,Windows 无法在本地解密 AES 加密的档案,即使在 Windows 10 等最新版本中也无法解密(请参阅原因)。PHP v8.0添加了“传统 pkware 加密”,允许 Windows 用户在没有第 3 方应用程序(7-Zip 等)的情况下处理文件。对于PHP v7.x,需要依赖shell 命令或使用支持 ZipCrypto 加密算法的库(有时称为“pkware” - 根据创建 zip 格式的公司)。packagist使用的几个最流行的zip 库ext-zip,因此它们不会在 PHP 7.x 上提供 PKWARE 加密。但是nelexa/zip没有,它支持 pkware 加密。
打开App,查看更多内容
随时随地看视频慕课网APP