私はswfプロジェクトをPHPに変換していますが、私はactionscriptにはあまりよくないので、Hex.toArray、Hex.fromString、Base64.encodeByteArrayをPHPのactionscript3に変換してください。いくつかの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の関数であるが、2つの関数の結果は、あなたがhex2bin
の代わりにPHPでbin2hex
、およびpack("H*", ...)
を使用することができます異なる
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