有关校内开心农场farmKey的算法

寻找了很久farmKey的算法,给出的都是已经过时的就看了一下午Flash,把开心农场中farmKey的代码全搜集出来了,由于没有接触过Flash编程,意义还需要慢慢理解~
研究过开心农场的朋友应该都看过,在flash中进行动作与服务器交互的时候,是以get方式提交,提交的数据中包含farmKey和farmTime两个比较重要的验证参数,如下代码:

 

        private function request(param1:String, param2:Object, param3:Function, param4:int = 60000, param5:Boolean = false, param6:String = "text") : void
        {
            var url:* = param1;
            var value:* = param2;
            var handlerFun:* = param3;
            var timeout:* = param4;
            var reload:* = param5;
            var dataFormat:* = param6;
            var _timeValue:* = MData.getInstance().mainData.serverTime;
            var farmKey:* = MD5.hash(_timeValue + SecurityKey.encodeKey);
            var farmTime:* = String(_timeValue);
            url = url + ("&farmKey=" + farmKey + "&farmTime=" + farmTime + "&inuId=" + SessionKey.value);
            HTTPRequest.getInstance().postRequest(url, value, [此处直接递交了一个函数,太长,剪掉], timeout, reload, dataFormat);
            return;
        }


代码有点乱……是直接从Flash中得到的,可以看到: 
 var _timeValue:* = MData.getInstance().mainData.serverTime; 
 var farmTime:* = String(_timeValue); 
 而mainData.serverTime;是从如下函数计算的: 

        public function get serverTime() : Number
        {
            if (_serverTime == 0)
            {
                return Math.floor(new Date().getTime() / 1000);
            }// end if
            return _serverTime + (Math.floor(getTimer() / 1000) - _clientTime);
        }// end function


最后计算farmKey,farmKey的计算函数是: 
 var farmKey:* = MD5.hash(_timeValue + SecurityKey.encodeKey); 
 可以看到farmKey是farmTime+一个安全码的MD5值,安全码的产生代码如下: 


        public static function get encodeKey() : String
        {
            var _loc_1:Bitmap;
            var _loc_2:String;
            if (_encodeKey != "inu")
            {
                return _encodeKey;
            }// end if
            _loc_1 = new KEYJPG();
            _loc_2 = _loc_1.bitmapData.getPixel32(3, 5).toString(23);
            return _loc_2;
        }// end function


这是一个完整的farmKey的产生过程。 
如果达人看到,希望帮忙指点~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值