5

我需要修改一个 PHAR 文件。每当我对文件进行更改然后执行它时,我都会收到以下错误消息:

Fatal error: Uncaught exception 'PharException' with message SHA1 signature could not be verified: broken signature'

通过做一些研究,我发现我可以

  • 提取phar,对其进行修改,然后“将其放回phar文件”。我怎么做?

  • phar.require_hash = false在我的 php.ini 中设置以禁用签名检查。不幸的是,这并没有解决问题

我只需要对文件做一些简单的修改,而且我是唯一一个会使用它的人,所以我希望能快速简单地解决这个问题

4

2 回答 2

4

问题在于 Symfony 网站上的安装命令如下所示:

c:\> php -r "readfile('http://symfony.com/installer');" > symfony

正确的命令是

c:\> php -r "readfile('http://symfony.com/installer');" > symfony.phar

并将文件移动到symfony.phar要创建项目的任何位置,或者只需将文件重命名symfonysymfony.phar. 如果文件仅命名,symfony您将收到此错误“无法验证sha1签名损坏的签名”,因为更改文件名也会使sha1无效(这就是散列的工作方式)。

于 2015-03-24T18:35:20.710 回答
0

您不能简单地在编辑器中更改 phar 内容,就像您不能在.zipor.tbz2文件中那样。

唯一可行的解​​决方案是提取 phar,修改提取的文件,然后重新打包 phar 文件。

于 2013-12-05T10:14:00.993 回答