色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php aes 亂碼

王梓涵1年前9瀏覽0評論

PHP AES加密后出現亂碼解決

<p>PHP AES加密后出現亂碼解決</p>

在使用PHP對數據進行AES加密后,可能會出現加密文本顯示為亂碼的情況,這時候我們需要對加密后的文本進行解密,同時在解密的過程中需要指定編碼格式為UTF-8,代碼如下:

$text = '這是要加密的文本';
$key = '這是密鑰';
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
mcrypt_generic_init($cipher, $key, $iv);
$encrypted = mcrypt_generic($cipher, $text);
mcrypt_generic_deinit($cipher);
$text = base64_encode($encrypted);
echo $text;  // iQITQgIecnyuxO30KmJfZJGhPlg==

此時我們在頁面上輸出加密后的文本,可以看到文本被正確加密并且轉換成base64編碼的形式。

但是在進行解密時,可能會出現亂碼的情況,這是因為PHP默認的編碼格式是ISO-8859-1,而我們在加密時使用了UTF-8的編碼格式,導致解密時出現亂碼。解決這個問題的方法是在解密時指定編碼格式為UTF-8,代碼如下:

$encrypted = base64_decode('iQITQgIecnyuxO30KmJfZJGhPlg==');
$cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
mcrypt_generic_init($cipher, $key, $iv);
$text = mdecrypt_generic($cipher, $encrypted);
mcrypt_generic_deinit($cipher);
$text = mb_convert_encoding($text, 'UTF-8', 'ISO-8859-1');
echo $text;  // 這是要加密的文本

在解密時指定編碼格式為UTF-8后,可以正確地將加密后的文本解密并轉換成UTF-8格式,從而避免了出現亂碼的情況。

總之,在進行PHP AES加密時,需要注意編碼格式的問題,尤其是在解密時需要指定編碼格式為UTF-8,這樣才能保證加密后的文本能夠正確顯示。

上一篇php aes ofb
下一篇php aes java