【发布时间】:2013-07-28 23:49:22
【问题描述】:
我遇到了一个我无法理解的问题。 试试下面的代码:
$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每个字符串,尽管它们对我们来说看起来一样,但它们是不同的..
【问题讨论】:
-
trim() 是你的朋友