1

我正在使用以下命令通过命令行通过 OpenSSL 生成 SHA1 哈希:

echo -n "test" | openssl dgst -sha1 -sign private.pem | openssl enc -base64

输出是:

mTuk4MicnS1Xn9BB4wed6pWe62CGDgj6imaOp9f3spiRo/W88WNac7sMkAYl37ruh82mbREbEzsFwCCdhO3MpGh/tyhb+2vx59tta1GTp5Nhb8PlnFL20Zh8QUrv6WrgvsI8z4IPG4KXCJw++7hBQHcnxa8dT5EMn1OW72MumG8=

当我使用 exec() 通过 PHP 执行相同的命令时,我得到不同的输出:

YDGDpc0nC1uaFBO28uepQ/8hMhqoUhXIhqb0UTVCHA2oqWI7PeYyHBB1tmvQ8iqo/ZJzvkNxAruy6T67rdpz/4hyKh6hRxGvYNStteqv/Cn04yiSlgidiHnN2x5aoI6GdE/c0haiE/WmJlFTOcQdPztsQWOk2QUzWdwDmO0OjqE=

为什么?

两个脚本都通过同一个用户运行,由于 PHP 脚本以“nobody”身份运行,我已经通过 shell 以无人身份登录并执行了它......没有 dfference

4

1 回答 1

2

使用完整路径解决了问题!

于 2013-10-28T12:58:32.217 回答