2011-06-22 67 views
0

我有这样的代码:PHP的mcrypt的工作不正常

$original = 'zner5'; 
$new = mcrypt_decrypt(MCRYPT_3DES, 'keyCodeEncryption', 'C¹`Û‡”fa', 'ecb'); 
if($original == $new) 
{ 
    echo "$original == $new"; 
} 
else 
{ 
    echo "$original != $new"; 
} 

它输出 'zner5 = zner5!'。为什么?

+0

是否!strcmp($ original,$ new)有效? –

回答

1

我似乎记得打前一段时间这个问题我自己,如果我没有记错,mcrypt_decrypt()可能给你的最终额外的零个字节的二进制字符串,那么试试这个:

$new = trim(mcrypt_decrypt(...)); 
+0

感谢你的工作 - 创造了一种魅力 –

+0

注意:如果原始字符串中有空白填充,并且想保持原样,您可能需要修剪(mcrypt_decrypt(...),“\ 0”)。 –