我將一個swf項目轉換爲php,我不太擅長動作,所以我需要幫助將actionscript3中的函數Hex.toArray,Hex.fromString,Base64.encodeByteArray轉換爲php。將一些AS函數轉換爲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函數I轉換,但兩種功能的結果是不同的
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);
}
在hash_hmac中,您已經將參數放入$ tmp4,然後是$ tmp3。這是預期的嗎? –
是的,因爲在AS中是關鍵的數據。在PHP是數據,關鍵 – complez