конвертировать некоторые функции AS в php - PullRequest
0 голосов
/ 19 октября 2011

Я конвертирую SWF-проект в php, я не очень хорошо разбираюсь в ActionScript, поэтому мне нужна помощь для преобразования функций Hex.toArray, Hex.fromString, Base64.encodeByteArray в actionscript3 в php.

ActionScript

public function spawn(query_str:String, key:String, token:String = "") : String{
    var tmp1:* = key + "&" + token;
    var tmp2:* = Crypto.getHMAC("sha1");
    var tmp3:* = Hex.toArray(Hex.fromString(tmp1));
    var tmp4:* = Hex.toArray(Hex.fromString(query_str));
    var tmp5:* = tmp2.compute(tmp3, tmp4);
    return Base64.encodeByteArray(tmp5);
}

Это PHP-функция, которую я конвертировал, но результаты двух функций разные

function spawn($query_str, $key, $token = ''){
    $tmp1 = $key . "&" . $token;
    $tmp3 = pack("H*" , bin2hex($tmp1));
    $tmp4 = pack("H*" , bin2hex($query_str));
    $tmp5 = hash_hmac('sha1', $tmp4, $tmp3);
    return base64_encode($tmp5);
}

1 Ответ

1 голос
/ 19 октября 2011

Вы можете использовать bin2hex в PHP и pack("H*", ...) вместо hex2bin. В PHP используются в основном функции base64: base64_encode и base64_decode.

Массивы редко используются для представления данных; двоичные данные обычно хранятся в строках в PHP. Но если действительно нужно, $array = array_map("ord", str_split($string)); сделает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...