易语言实地培训长期招生 QQ1615457736

乐易论坛

 找回密码
 立即注册

微信登录

微信扫码,快速开始

QQ登录

用QQ账号登陆

导航
导航
培训
培训
产品
产品
易歪歪客服聊天助手——永久免费
验证码识别/打码平台/谷歌人机验证/
阿里云服务器最高¥1888云产品通用代金券我要租广告
易歪歪客服聊天助手——永久免费各类验证码定制,注册赠送¥588礼包,点击领取阿里云服务器低至10元/月我要租广告
易歪歪客服聊天助手——永久免费接码打码最高2000云产品通用代金券我要租广告
查看: 3547|回复: 0
收起左侧

[课程下载] [第二阶段:营销引流软件开发]2.6.4、详细讲解sign加密的运行过程分析

[复制链接]
  • TA的每日心情
    奋斗
    13 小时前
  • 签到天数: 749 天

    [LV.9]以坛为家II

    发表于 2018-12-25 21:39:47 | 显示全部楼层 |阅读模式

    乐易编程网免费注册!抓住机会哦!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    [第二阶段:营销引流软件开发]2.6.4、详细讲解sign加密的运行过程分析
    讲师:揰掵佲
    QQ:1615457734 1615457736
    乐易论坛 https://bbs.leybc.com

    [Java] 纯文本查看 复制代码
    1、通过搜索 sign 定位到 http.b这个类里面
            localJSONObject.put("sign", generateMD5Key2(localObject));
            localJSONObject.put("encrypt", "md5");
    2、我们就去查找  generateMD5Key2 这个函数
    	public String generateMD5Key2(Object paramObject)
    	# 公开   字符串  生成sign (paramObject)
      {
        if ((paramObject instanceof JSONObject))
    	#如果真(paramObject是一个json对象)
        {
          JSONObject localJSONObject = (JSONObject)paramObject;
    	  #localJSONObject = paramObject
          StringBuilder localStringBuilder = new StringBuilder();
    	  # localStringBuilder="";
          localStringBuilder.append("secret.wdj.client");
    	  #localStringBuilder=localStringBuilder+"secret.wdj.client";
          Iterator localIterator = getSortedKeys(localJSONObject).iterator();
    	  #把localJSONObject的数据 key 按照从低到高的顺序排列
          while (localIterator.hasNext())
          {
            String str1 = (String)localIterator.next();
    		#str1 = key
            String str2 = getAsString(localJSONObject.opt(str1));
    		#str2 = value
            localStringBuilder.append(str1).append("=").append(str2);
    		#localStringBuilder=localStringBuilder+key+"="+value;
          }
          localStringBuilder.append("LVJd97AbRtikeYRRhi3ocdwSD");.
    	  #localStringBuilder=localStringBuilder+"LVJd97AbRtikeYRRhi3ocdwSD"
          return y.b(localStringBuilder.toString());
    	  # 返回 MD5(localStringBuilder)
        }
        return "";
      }
    3、查找传递进来的参数是什么
          Object localObject = createRequestData(); 
    	  #我们找到参数来源是 createRequestData(); 创建之后的结果 createRequestHeader(localObject);
          JSONObject localJSONObject = createRequestHeader(localObject);
    	  #进入这个函数 去查看一下 localObject是属于 localJSONObject的哪一部分?
    	  #这个数据localJSONObject 是我们能够在fd抓包得到的
    	  #我们可以通过分析 localJSONObject中的某个部分就是localObject
    	  #因此 createRequestHeader 进入函数 查看一下 localObject 是localJSONObject的哪一部分?
    		protected JSONObject createRequestHeader(Object paramObject)
    		#受保护   json结构    createRequestHeader(paramObject)
    		  {
    			JSONObject localJSONObject= new JSONObject();
    			# localJSONObject={};
    			localJSONObject.put("id", this.mRequestId);
    			#localJSONObject={"id":this.mRequestId}
    			localJSONObject.put("client", generateClientJsonStr());
    			#localJSONObject={"id":this.mRequestId,"client":generateClientJsonStr()}
    			localJSONObject.put("data", paramObject);
    			#localJSONObject={"id":this.mRequestId,"client":generateClientJsonStr(),"data":paramObject}
    			onAddHeader(localJSONObject);
    			#添加头
    			return localJSONObject;
    			#返回 localJSONObject
    		  }
    	  #结论,当我们通过FD抓包之后,得到的数据中 data的数据 就是 localObject
    	  #我们就可以把localObject传递到generateMD5Key2这个函数进行加盐算法、
    	  #用易语言实现 generateMD5Key2的功能


    2.6.4、详细讲解sign加密的运行过程分析 - 乐易云课堂-乐易论坛出品 - 乐易论坛
    https://bbs.leybc.com/lesson-533.html

    易语言实地培训,报名联系QQ 1615457736
    [超强]《易语言软件加密(防破解)技术特训》
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    乐易推荐上一条 /6 下一条

    QQ|网站地图|Archiver|手机版|小黑屋|乐易论坛 ( 湘ICP备19007035号-2 )

    GMT+8, 2019-11-15 21:15 , Processed in 0.103787 second(s), 76 queries .

    Powered by Discuz! X3.4 Licensed

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表