Commit bb9af6db authored by shiyl's avatar shiyl

混淆配置更细 、加密工具类增加log

parent 4ef5920b
...@@ -11,94 +11,95 @@ import com.yidian.utils.ToastUtil ...@@ -11,94 +11,95 @@ import com.yidian.utils.ToastUtil
import com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager import com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager
import java.lang.reflect.Type import java.lang.reflect.Type
class HttpParamsUtils{ class HttpParamsUtils {
companion object{ companion object {
fun getPublicParamsMap(timeStamp: Long): HashMap<String, String>{ fun getPublicParamsMap(timeStamp: Long): HashMap<String, String> {
val networkType = NetWorkUtils.getNetWorkType(YdBaseApplication.context) val networkType = NetWorkUtils.getNetWorkType(YdBaseApplication.context)
val queryParamsMap = HashMap<String, String>() val queryParamsMap = HashMap<String, String>()
queryParamsMap["appid"] = AppConfig.appid queryParamsMap["appid"] = AppConfig.appid
queryParamsMap["cv"] = AppConfig.cv queryParamsMap["cv"] = AppConfig.cv
queryParamsMap["version"] = AppConfig.version queryParamsMap["version"] = AppConfig.version
queryParamsMap["distribution"] = AppConfig.distribution queryParamsMap["distribution"] = AppConfig.distribution
queryParamsMap["net"] = networkType queryParamsMap["net"] = networkType
queryParamsMap["platform"] = AppConfig.platform queryParamsMap["platform"] = AppConfig.platform
queryParamsMap["device_finger"] = getDeviceFinger() queryParamsMap["device_finger"] = getDeviceFinger()
queryParamsMap["reqid"] = getRequestId(timeStamp) queryParamsMap["reqid"] = getRequestId(timeStamp)
return queryParamsMap return queryParamsMap
} }
fun getPrivateParamsMap(paramsMap: HashMap<String, String?>, timeStamp: Long): HashMap<String, String?>{ fun getPrivateParamsMap(paramsMap: HashMap<String, String?>, timeStamp: Long): HashMap<String, String?> {
return if(AppConfig.IS_ENCRYPT){ return if (AppConfig.IS_ENCRYPT) {
val reqId = getRequestId(timeStamp) val reqId = getRequestId(timeStamp)
paramsMap["secret"] = getSignString(reqId, timeStamp) paramsMap["secret"] = getSignString(reqId, timeStamp)
paramsMap["ts"] = timeStamp.toString() paramsMap["ts"] = timeStamp.toString()
val paramsJson = Gson().toJson(paramsMap) val paramsJson = Gson().toJson(paramsMap)
LogUtil.show("请求参数:$paramsJson") LogUtil.show("请求参数:$paramsJson")
val tok = SecretUtil.rsaEncrypt(paramsJson) val tok = SecretUtil.rsaEncrypt(paramsJson)
val queryParamsMap = HashMap<String, String?>() val queryParamsMap = HashMap<String, String?>()
queryParamsMap["tok"] = tok queryParamsMap["tok"] = tok
queryParamsMap queryParamsMap
}else{ } else {
paramsMap paramsMap
} }
} }
fun<T> rsaDecryptResult(res: HttpResult<Any?>, type: Type): HttpResult<T>{ fun <T> rsaDecryptResult(res: HttpResult<Any?>, type: Type): HttpResult<T> {
val rsaResult = res.result val rsaResult = res.result
val decodeResult = HttpResult<T>() val decodeResult = HttpResult<T>()
decodeResult.code = res.code decodeResult.code = res.code
decodeResult.reason = res.reason decodeResult.reason = res.reason
decodeResult.status = res.status decodeResult.status = res.status
if(rsaResult != null){ if (rsaResult != null) {
val gson = Gson() val gson = Gson()
if(AppConfig.IS_ENCRYPT){ if (AppConfig.IS_ENCRYPT) {
val result = SecretUtil.rsaDecrypt(rsaResult as String) val result = SecretUtil.rsaDecrypt(rsaResult as String)
LogUtil.show("返回参数:$result") LogUtil.show("返回参数:$result")
val decryptResult = gson.fromJson<HttpDecryptResult<T>>(result, object: TypeToken<HttpDecryptResult<T>>(){}.type) val decryptResult = gson.fromJson<HttpDecryptResult<T>>(result, object : TypeToken<HttpDecryptResult<T>>() {}.type)
val verifyParams = decryptResult.reqid + decryptResult.ts val verifyParams = decryptResult.reqid + decryptResult.ts
val secretNet = decryptResult.secret val secretNet = decryptResult.secret
val verify = SecretUtil.verifySign(verifyParams, secretNet) val verify = SecretUtil.verifySign(verifyParams, secretNet)
return if(verify){ return if (verify) {
LogUtil.show("===============验签成功==================") LogUtil.show("===============验签成功==================")
val resultJson = gson.toJson(decryptResult.data) val resultJson = gson.toJson(decryptResult.data)
decodeResult.result = gson.fromJson<T>(resultJson, type) decodeResult.result = gson.fromJson<T>(resultJson, type)
decodeResult decodeResult
}else { } else {
ToastUtil.showToast(YdBaseApplication.context, "验签失败") ToastUtil.showToast(YdBaseApplication.context, "验签失败")
decodeResult decodeResult
} }
}else{ } else {
val resultJson = gson.toJson(rsaResult) val resultJson = gson.toJson(rsaResult)
decodeResult.result = gson.fromJson<T>(resultJson, type) decodeResult.result = gson.fromJson<T>(resultJson, type)
return decodeResult return decodeResult
}
}
return decodeResult
} }
}
LogUtil.show("===============rsaResult为空了==================")
return decodeResult
}
private fun getDeviceFinger(): String{ private fun getDeviceFinger(): String {
var deviceFinger = "" var deviceFinger = ""
val tempId = FtDeviceFingerManager.getDeviceFinger() val tempId = FtDeviceFingerManager.getDeviceFinger()
if(tempId != null){ if (tempId != null) {
deviceFinger = tempId deviceFinger = tempId
} }
return deviceFinger return deviceFinger
} }
private fun getRequestId(timeStamp: Long): String{ private fun getRequestId(timeStamp: Long): String {
val sb = StringBuilder() val sb = StringBuilder()
sb.append(AppConfig.appid) sb.append(AppConfig.appid)
sb.append('_') sb.append('_')
sb.append(getDeviceFinger()) sb.append(getDeviceFinger())
sb.append('_') sb.append('_')
sb.append(timeStamp) sb.append(timeStamp)
return sb.toString() return sb.toString()
} }
private fun getSignString(reqId: String, timeStamp: Long): String?{ private fun getSignString(reqId: String, timeStamp: Long): String? {
val sb = StringBuilder() val sb = StringBuilder()
sb.append(reqId).append(timeStamp) sb.append(reqId).append(timeStamp)
return SecretUtil.sign(sb.toString()) return SecretUtil.sign(sb.toString())
}
} }
}
} }
...@@ -279,7 +279,7 @@ public static final int *; ...@@ -279,7 +279,7 @@ public static final int *;
-keep class com.yidian.http.**{*;} -keep class com.yidian.http.**{*;}
-keep class com.yidian.common.bean.**{*;} -keep class com.yidian.common.bean.**{*;}
-keep class com.yidian.common.http.bean.**{*;} -keep class com.yidian.common.http.bean.**{*;}
-keep class com.yidian.shenghuoquan.newscontent.http.**{*;} -keep class com.yidian.shenghuoquan.newscontent.http.httpbean.**{*;}
-keep class com.yidian.common.utils.*{*;} -keep class com.yidian.common.utils.*{*;}
-keep class com.yidian.shenghuoquan.newscontent.utils.*{*;} -keep class com.yidian.shenghuoquan.newscontent.utils.*{*;}
-keep class com.yidian.shenghuoquan.newscontent.bean.**{*;} -keep class com.yidian.shenghuoquan.newscontent.bean.**{*;}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment