簡體   English   中英

php strcmp加密/解密文本失敗。編碼問題?

[英]php strcmp failing with encrypted / decrypted text.. Encoding issue?

我絆倒了一個我無法理解的問題。 只需嘗試以下代碼:

$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,盡管我們看起來相同,但它們是不同的。

嘗試這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM