2011-06-22 70 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」)。 –