揰掵佲 发表于 2018-12-25 21:39:47

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

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

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加密的运行过程分析 - 乐易云课堂-乐易论坛出品 - 乐易论坛
http://bbs.leybc.com/lesson-533.html

页: [1]
查看完整版本: [第二阶段:营销引流软件开发]2.6.4、详细讲解sign加密的运行过程分析