PHP出现,当我使用被赋予不同的散列值php -r <code>在命令行上,当我与执行该文件php <file>,php -f <file>或运行在Apache代码.
例如,命令行上的SHA1用法使用-r:
$ php -r "print sha1('$1S*90');"
77cd8b48ceca53e018f80536b0a44c5b6710425f
Run Code Online (Sandbox Code Playgroud)
当我尝试使用testSHA.php以下文件时:
<?php
print sha1('$1S*90');
?>
Run Code Online (Sandbox Code Playgroud)
并使用mod_php5以下命令在命令行或Apache内部运行:
$ php testSHA.php
201cb5aaa7d4db1a49d9be1f2c06d45e4c2a69f2
Run Code Online (Sandbox Code Playgroud)
但奇怪的是,当我尝试使用不同的输入字符串(例如"123456789")时,哈希与两种方法匹配.
我不认为我在这两种方法中使用不同的编码或字符集.我也尝试过使用MD5,并且仍然在命令行上使用-r和'-f' 获得不同的哈希值.
有人可以用上面的两种方法指出为什么哈希会有所不同吗?有没有办法在命令行上运行PHP,我可以在不输入文件的情况下键入代码,并看到输出就像在文件/ Apache中运行一样?当未设置单步代码调试时,我使用命令行进行快速代码段测试.
谢谢.
PS:我在OpenSUSE 11.1上使用PHP 5.2.11和Suhosin-Patch 0.9.7(cli).