大家帮忙看看这段源码。。
package flashclass.game.game
{
import com.adobe.crypto.*;
import flash.external.*;
import flash.net.*;
import flashclass.game.*;
public class GameDataClass extends Object
{
private var _getDataComplete:Function;
private var _saveDataComplete:Function;
private var _serve:ServeClass;
public var isLogin:Boolean = false;
public var data:Object;
public var card:int;
public var qq:Number;
public var score:Number;
public var gameTime:Number;
private var key:Number;
public var weibo:int = 1;
public var qzone:int = 1;
public var timer:Number = 0;
public var speed:Number = 60;
public var nowScore:Number = 0;
public var xml:XML;
private static var instance:GameDataClass;
public function GameDataClass()
{
this._serve = new ServeClass();
return;
}// end function
public function checkLogin(param1:XMLList) : void
{
this.isLogin = ExternalInterface.call(param1.@iface);
return;
}// end function
public function ifaceCtr(param1:XMLList, param2:String = "_self") : void
{
if (param1.@type == "js")
{
ExternalInterface.call(param1.@iface);
}
else
{
navigateToURL(new URLRequest(param1.@iface), param2);
}
return;
}// end function
public function getData(param1:String, param2:Function = null) : void
{
this._serve.resetData();
this._serve.setDataFormat();
this._serve.sendData(param1 + "?rnd=" + Math.random(), this.getDataComplete);
this._getDataComplete = param2;
return;
}// end function
private function getDataComplete(param1:Object) : void
{
var _loc_2:* = param1;
if (_loc_2.code != 0)
{
ExternalInterface.call(this.xml.code.@iface, _loc_2.code);
return;
}
this.data = _loc_2;
this.card = _loc_2.data.card;
this.qq = _loc_2.data.qq;
this.score = _loc_2.data.score;
this.gameTime = _loc_2.data.gameTime;
this.key = _loc_2.data.key;
if (this._getDataComplete != null)
{
this._getDataComplete();
}
return;
}// end function
public function saveData(param1:String, param2:Object, param3:Function = null) : void
{
var _loc_4:* = Math.round(this.timer * 10) / 10;
var _loc_5:* = String(this.qq) + _loc_4 + String(this.key) + this.card + "tencent20111128";
this._serve.resetData();
this._serve.setDataFormat();
this._serve.addFormField("shareWeibo", param2.shareWeibo);
this._serve.addFormField("shareQzone", param2.shareQzone);
this._serve.addFormField("shareFeeds", param2.shareFeeds);
this._serve.addFormField("gameTime", _loc_4);
this._serve.addFormField("card", this.card);
this._serve.addFormField("key", MD5.hash(_loc_5));
this._serve.sendData(param1, this.saveDataComplete);
this._saveDataComplete = param3;
return;
}// end function
private function saveDataComplete(param1:Object) : void
{
if (this._saveDataComplete != null)
{
this._saveDataComplete(param1);
}
return;
}// end function
public function cardUpdata(param1:String, param2:Function = null) : void
{
this._serve.resetData();
this._serve.setDataFormat();
this._serve.sendData(param1 + "?rnd=" + Math.random(), this.upDataComplete);
this._getDataComplete = param2;
return;
}// end function
private function upDataComplete(param1:Object) : void
{
var _loc_2:* = param1;
if (!_loc_2.success)
{
navigateToURL(new URLRequest("javascript:*****(\'" + _loc_2.info + "\');"), "_self");
this.ifaceCtr(this.xml.gamepage, this.xml.gamepage.@target);
return;
}
this.card = _loc_2.card;
if (this._getDataComplete != null)
{
this._getDataComplete();
}
return;
}// end function
public static function getInstance() : GameDataClass
{
if (instance == null)
{
instance = new GameDataClass;
}
return instance;
}// end function
}
}
请问下里面的 this._serve.addFormField("key", MD5.hash(_loc_5)); 这个key 是怎么算出来的
抓包的数据
感谢啊 。。
-----------------------------7db1851cd1158
Content-Disposition: form-data; name="shareWeibo"
0
-----------------------------7db1851cd1158
Content-Disposition: form-data; name="shareQzone"
1
-----------------------------7db1851cd1158
Content-Disposition: form-data; name="shareFeeds"
null
-----------------------------7db1851cd1158
Content-Disposition: form-data; name="gameTime"
192.6
-----------------------------7db1851cd1158
Content-Disposition: form-data; name="card"
0
-----------------------------7db1851cd1158
Content-Disposition: form-data; name="key"
f2827c8e4b82323c457017cb019de667
-----------------------------7db1851cd1158--
[解决办法]
f2827c8e4b82323c457017cb019de667=MD5.hash(String(this.qq) + (Math.round(this.timer * 10) / 10) + String(this.key) + this.card + "tencent20111128")
