この記事では、PHP aes (ecb) 復号化後のコードが文字化けする問題の解決策を主に紹介します。非常に簡単で実用的です。
内容:abcd
キー:1234567890123456
暗号化されたbase64: T7UT2NQ1AFvR9unjA0wKWA==
?
1 2 3 4 5 6 7 |
関数 apiDataDecrypt($data, $key='') { $data =base64_decode($data); $pad = 16 - (strlen($data) % 16); $padData = $data .str_repeat(chr($pad), $pad); return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,$padData, MCRYPT_MODE_ECB); } } |
ソリューションを直接添付します
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$key = '1234567890123456'; $content = 'T7UT2NQ1AFvR9unjA0wKWA=='; $desStr = decryptString($content,$key); エコー($desStr);
関数 decryptString($str,$key) { $str = Base64_decode($str); $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_ECB); $block = mcrypt_get_block_size('rijndael_128', 'ecb'); $pad = ord($str[($len = strlen($str)) - 1]); $len = strlen($str); $pad = ord($str[$len-1]); return substr($str, 0, strlen($str) - $pad); } |
以上がこの記事の全内容ですが、皆さんに気に入っていただければ幸いです。