我正在使用以下命令通过命令行通过 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