Im пытается декодировать данные в PHP вернулись с сервера: Я знаю данные AES 256 декодируются и имею pkcs7 отступы, но не могу понять, какой режим блока его используетAES 256 с pkcs7 отступами кодированных данными имеет половину ЕЦБ и половина CBC блок
вот моя PHP функция:
public function decode($data)
{
//AES decode
$iv = mcrypt_create_iv(GEServerConnection::FBENCRYPT_BLOCK_SIZE, MCRYPT_RAND);
$data = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->cryptKey, base64_decode($data), MCRYPT_MODE_ECB, $iv);
//return $data;
$len = strlen($data);
$pad = ord($data[$len - 1]);
return substr($data, 0, - $pad);
}
и пример закодированных данных
3KD+zb/2u5gGEWvOy0Q0nSQE9pbQZmg27iN6WLiO/Af9YjN8MhHOb8TMa5uETaab
когда я расшифровывать с ЕЦБ (MCRYPT_MODE_ECB) это декодировать только начало данных и остальное unreadabl е
"Please input yo��̓��g|��*P�Te��� R�B
и когда декодирование в режиме CBC (MCRYPT_MODE_CBC) она есть начало нечитаемого
��0�=v������.3ur username and password again"
результат должен быть (что я получаю на макинтош с помощью CommonCryptor в Objective-C):
"Please input your username and password again"
Кто-нибудь знает, что не так, или как его декодировать правильно?
Спасибо! Я начал думать об этом, но mcrypt не имеет нулевых функций создания вектора, я сделал это самостоятельно: $ iv = str_repeat («\ 0», 16); – Harry