PHP(md5)为空结果

时间:2012-02-13 20:29:02

标签: php md5

我的代码示例有问题,结果是空白页面。我在php中检查了mcrypt_ecb函数,并且可用。那为什么我只得到空的结果呢?     

$suma='9990'; 
$idobj='38'; 
$cislooz='TEST';

$input=$suma.$idobj.$cislooz; 
$key='KEY';

$encrypted_text = mcrypt_ecb(MCRYPT_3DES, $key, substr(sha1($input),0,8), MCRYPT_ENCRYPT,substr(sha1($input),0,8)); 

echo "<b>INPUT: </b>".$input."<br>"; 
echo "<b>KEY: </b>".$key."<br>"; 
echo "<b>Hash sha1: </b>".substr(sha1($input),0,8)."<br>"; 
echo "<b>Hash to 3DES/ECB/NoPadding:</b> ".( $encrypted_text )."<br>"; 
echo "<b>to HEX:</b> ".StrToUpper(bin2hex($encrypted_text))."<hr>"; 

?>

1 个答案:

答案 0 :(得分:4)

您可能在某处遇到问题。我在PHP 5.3.0上测试了它并输出:

INPUT: 999038TEST
KEY: KEY
Hash sha1: c063a3be
Hash to 3DES/ECB/NoPadding: K\Aj¥íµÉ
to HEX: 4B5C416AA5EDB5C9

您可能触发了PHP错误,但知道这一点的唯一方法是设置:

error_reporting(E_ALL);
ini_set('display_errors',1);

在脚本的顶部,以便您能够看到错误是什么。

另一个解释是您使用ob_start()启动了一个输出缓冲区,并且可能管理错误。

或者你可以在某个地方exit;die();

正如您所看到的,您的问题可能会有很多“因为”。

修改: 最后,我们终于发现了真正的问题。他的代码中的空格转换为错误的不可见字符;那是因为它是从PDF中复制的。

no desc

在这里你可以看到:第一行工作正常,空间对应于脚本中的.。另一个符号(绿色注释)引起了问题。