php strcmp失败加密/解密文本..编码问题?

时间:2013-07-28 23:49:22

标签: php strcmp

我遇到了一个我无法理解的问题。 只需尝试以下代码:

$key = "This is a very secret key";
$text = "This is a very secret message";
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB);

echo( $text. "\r\n" );
echo( $decrypttext . "\r\n" );
echo( md5( $text ) . "\r\n" );
echo( md5( $decrypttext ) . "\r\n" );
echo( strcmp($text,$decrypttext) );

strcmp()输出应该为0,因为两个字符串相等,但是由于字符编码,某些东西会导致这种比较失败。

我怎样才能让这种比较起作用,我已经尝试过转换为utf8,取消转换,转换为字符串等等。没有什么能使这种比较工作。它确实是一个字符编码/解码问题,因为如果你处理的md5每个字符串,虽然看起来和我们一样,但它们是不同的。

1 个答案:

答案 0 :(得分:1)

试试这个

echo( strcmp(trim($text),trim($decrypttext)) );