This article mainly introduces the solution to the problem of garbled characters after decryption by PHP aes (ecb). It is very simple and practical. If necessary Friends can refer to it.
Content: abcd
KEY:1234567890123456
Encrypted base64: T7UT2NQ1AFvR9unjA0wKWA==
?
2 3
4 56 |
function 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); echo($desStr); function 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); } |