【问题标题】:How can I create a WinZip compatible AES-256 encrypted zip file from PHP on Linux?如何在 Linux 上从 PHP 创建与 WinZip 兼容的 AES-256 加密 zip 文件?
【发布时间】:2010-10-21 14:47:25
【问题描述】:

我必须从 Linux 机器上的 PHP 应用程序创建一个 WinZip 兼容的 zip 文件,并且它必须使用 AES 256 加密。我在 Windows 上找到了一些 PHP 解决方案,但它们对我没有帮助! PHP 包会很棒,但如果需要,我总是可以让我的 PHP 代码运行 exec() 或其他东西来运行 linux 命令行实用程序。

有什么建议吗?

【问题讨论】:

  • 看起来您需要调用外部 zip 程序来应用加密。 PHP 的内置 zip 类可以很好地在 Linux 或 Windows 上制作/提取通用 zip 文件,但似乎没有提及任何加密支持。
  • 似乎 AES 加密是一种特定的 WinZIP 功能(请参阅winzip.com/aes_info.htm),而不是 ZIP 文件世界中广泛认可的标准,这使得在没有调用 WinZIP,尤其是在非 Windows 机器上。这让我想:你到底为什么要这样做?可能有很多不错的选择。您的脚本将在什么操作系统上运行,以及 zip 文件将在什么操作系统上打开?你想保护什么类型的东西,为什么?
  • 简短回答 Pelle 10 Cate...我的客户已指定这些要求。我希望让他们同意我更容易实施的细微变化。
  • 压缩重要文件有时可能会同时加密它们。这是一个方便与安全相结合的问题。因此,您通常会发现一个简单的exec 命令可以连接到外部 zip 应用程序,以同时对您的文件进行压缩和加密。如果当时加密并不重要,只需使用 PHP 的 zip 类即可。如果是,请调用外部 zip 应用程序来完成这项工作。换句话说,Woot4Moo 的答案并不完全正确。
  • 嗨,Jason,您对此有什么解决方案吗?如果你用你的答案编辑问题会很棒,如果你明白了:)

标签: php linux aes winzip


【解决方案1】:

不是特定于 php 的(这个问题在谷歌中排名很高,也没有 php): 7-Zip 实现了这个功能,在我的文档中我发现了这个命令:

7za a -tzip -pPASSWORD -mem=AES256 target.zip filelist

【讨论】:

  • 这个问题因为给定的php标签而被排名
【解决方案2】:
  1. 如果您的主机上尚未安装 Zip 应用程序克隆,只需搜索 Google 以安装能够支持加密和跨平台兼容性的一百种不同 zip 应用程序之一。
  2. 使用`exec` 或类似的PHP 函数来调用任何可用的外部压缩应用程序,该应用程序能够压缩并将AES-256 加密应用于您的目标文件。您需要知道您的 zip 应用程序需要的任何命令行开关才能实现这一点。 `exec` 字符串参数中的目标文件名当然可以使用变量来切换。
  3. 提供新的 zip 文件

但是,如果不考虑加密,请参阅 PHP 的 Zip 类以制作通用 zip 文件:http://php.net/manual/en/book.zip.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    相关资源
    最近更新 更多