据统计90%查看本帖的人,都已经注册本站了哦
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[第二阶段:营销引流软件开发]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
|