将一些 AS 函数转换为 php
我将 swf 项目转换为 php,我不太擅长使用 actionscript,因此我需要帮助将 actionscript3 中的函数 Hex.toArray、Hex.fromString、Base64.encodeByteArray 转换为 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);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在 PHP 中使用
bin2hex
,以及pack("H*", ...)
代替hex2bin
。 PHP 中主要使用的 base64 函数是base64_encode
和base64_decode
。数组很少用于数据表示;在 PHP 中,二进制数据通常保存在字符串中。但如果确实需要
$array = array_map("ord", str_split($string));
就可以了。You can use
bin2hex
in PHP, andpack("H*", ...)
in lieu ofhex2bin
. The primarily used base64 functions in PHP arebase64_encode
andbase64_decode
.Arrays are seldomly used for data representation; binary data is generally kept in strings in PHP. But if really needed
$array = array_map("ord", str_split($string));
would do.