May
12
知识储备,目前公司使用了k3cloud,但接口提供的接口实在是有点少.所以在考虑是不是可以通用使用界面的接口.来完成功能.
但查看返回来的数据是这样的
H4sIAAAAAAAEAA3JOwrAIBAFwLu8egshkMJzpBOLNVmI4Cfomka8ezLtuAk+NdZSOAssuugRs9ShIDzcOHdYN/FyGv9vuzEEKRySXLDahhBu4RaE9W9jll80l/8ABPfqSlgAAAA=
这明显是一个base64的数据.但尝试解析出来是字节内容来的.然后查看源来.找到了doPostAsync()方法,里的的算法大概是这样的
this.doPostAsync(e.url, t, e){
d = KD.utf8Decode(KD.decompress(a){
t = new JXG.Util.Unzip(JXG.Util.Base64.decodeAsArray(e)).unzip()[0][0]
}){
var t, i, a, n, o, r;
for (t = "", a = e.length, i = 0; a > i;) switch (n = e.charCodeAt(i++), n >> 4) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
t += e.charAt(i - 1);
break;
case 12:
case 13:
o = e.charCodeAt(i++),
t += String.fromCharCode((31 & n) << 6 | 63 & o);
break;
case 14:
o = e.charCodeAt(i++),
r = e.charCodeAt(i++),
t += String.fromCharCode((15 & n) << 12 | (63 & o) << 6 | (63 & r) << 0)
}
return t
}
}
上面的是伪代码.只是显示了使用的算法主要是:unzip+base64
然后尝试使用php来解压
$string= 'H4sIAAAAAAAEAA3JOwrAIBAFwLu8egshkMJzpBOLNVmI4Cfomka8ezLtuAk+NdZSOAssuugRs9ShIDzcOHdYN/FyGv9vuzEEKRySXLDahhBu4RaE9W9jll80l/8ABPfqSlgAAAA=';
$base64_str = base64_decode($string);
var_dump(gzdecode ($base64_str));
输出的结果
但查看返回来的数据是这样的
H4sIAAAAAAAEAA3JOwrAIBAFwLu8egshkMJzpBOLNVmI4Cfomka8ezLtuAk+NdZSOAssuugRs9ShIDzcOHdYN/FyGv9vuzEEKRySXLDahhBu4RaE9W9jll80l/8ABPfqSlgAAAA=
这明显是一个base64的数据.但尝试解析出来是字节内容来的.然后查看源来.找到了doPostAsync()方法,里的的算法大概是这样的
this.doPostAsync(e.url, t, e){
d = KD.utf8Decode(KD.decompress(a){
t = new JXG.Util.Unzip(JXG.Util.Base64.decodeAsArray(e)).unzip()[0][0]
}){
var t, i, a, n, o, r;
for (t = "", a = e.length, i = 0; a > i;) switch (n = e.charCodeAt(i++), n >> 4) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
t += e.charAt(i - 1);
break;
case 12:
case 13:
o = e.charCodeAt(i++),
t += String.fromCharCode((31 & n) << 6 | 63 & o);
break;
case 14:
o = e.charCodeAt(i++),
r = e.charCodeAt(i++),
t += String.fromCharCode((15 & n) << 12 | (63 & o) << 6 | (63 & r) << 0)
}
return t
}
}
上面的是伪代码.只是显示了使用的算法主要是:unzip+base64
然后尝试使用php来解压
$string= 'H4sIAAAAAAAEAA3JOwrAIBAFwLu8egshkMJzpBOLNVmI4Cfomka8ezLtuAk+NdZSOAssuugRs9ShIDzcOHdYN/FyGv9vuzEEKRySXLDahhBu4RaE9W9jll80l/8ABPfqSlgAAAA=';
$base64_str = base64_decode($string);
var_dump(gzdecode ($base64_str));
输出的结果
引用
string(88) "[{"actionname":"setTimeout","params":[{"value":3600,"enabled":true,"hearbeat":300}]},{}]"