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」として実行されるため、シェルを介してnobodyとしてログインし、実行しました...違いはありません

4

1 に答える 1

2

フルパスを使用すると問題が解決しました!

于 2013-10-28T12:58:32.217 に答える