サーバーから返されたphpでデータをデコードしようとしています:データAES 256がデコードされ、PKCS7パディングがあることは知っていますが、どのブロックモードを使用しているかわかりません
ここに私の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
ECB (MCRYPT_MODE_ECB) でデコードすると、データの先頭のみがデコードされ、残りは読み取れません
"Please input yo��̓��g|��*P�Te��� R�B
CBC(MCRYPT_MODE_CBC)モードでデコードすると、読み取り不能になり始めます
��0�=v������.3ur username and password again"
結果は次のようになります(Objective-CでCommonCryptorを使用してMacで取得したもの):
"Please input your username and password again"
誰かが何が間違っているか、正しい方法でデコードする方法を知っていますか?