Commit d0a60dc6 by sikang

remvoe not use file

parent 8aac8538
package com.common.toolbox.app_utils;
import android.text.TextUtils;
/**
* @author Mansoul
* @create 2019/2/10 20:29
* @des
*/
public class AuthUtil {
/**
* app秘钥解密
*
* @param secretKey display返回的restUrlSignKey字段
* @return
*/
public static String getSignKey(String secretKey) {
if (TextUtils.isEmpty(secretKey)) {
return "";
}
byte[] decode = Base64.getDecoder().decode(secretKey);
return new String(ThreeDes.decrypt(decode));
}
}
package com.common.toolbox.app_utils;
import android.text.TextUtils;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import okhttp3.FormBody;
import okhttp3.Request;
/**
* @author Mansoul
* @create 2019/7/1 12:04
* @des
*/
public class HeadersUtil {
public static void signHeader(String signKey,
String deviceSign,
String sdSign,
Request request,
Request.Builder builder) {
try {
String random = UUID.randomUUID().toString();
//请求参数名参数值+appsecret+random
String sign = "";
String params = "";
if (TextUtils.equals(request.method(), "GET")) {
//参数名列表
List<String> paramNames = new ArrayList<>(request.url().queryParameterNames());
List<String> paramsKey = new ArrayList<>();
HashMap<String, String> paramsMap = new HashMap<>();
for (int i = 0; i < paramNames.size(); i++) {
String key = paramNames.get(i);
paramsKey.add(key);
paramsMap.put(key, request.url().queryParameterValue(i));
}
params = getParameter(paramsKey, paramsMap);
} else if (TextUtils.equals(request.method(), "POST") || TextUtils.equals(request.method(), "PUT")) {
if (request.body() instanceof FormBody) {
FormBody body = (FormBody) request.body();
List<String> paramsKey = new ArrayList();
HashMap<String, String> paramsMap = new HashMap<>();
for (int i = 0; i < body.size(); i++) {
paramsKey.add(body.encodedName(i));
paramsMap.put(body.encodedName(i), body.encodedValue(i));
}
params = getParameter(paramsKey, paramsMap);
}
if (request.url().queryParameterNames() != null) {
List<String> paramNames = new ArrayList<>(request.url().queryParameterNames());
List<String> paramsKey = new ArrayList<>();
HashMap<String, String> paramsMap = new HashMap<>();
for (int i = 0; i < paramNames.size(); i++) {
String key = paramNames.get(i);
paramsKey.add(key);
paramsMap.put(key, request.url().queryParameterValue(i));
}
params = params + "&" + getParameter(paramsKey, paramsMap);
if (params.startsWith("&")) {
params = params.replaceFirst("&", "");
}
if (params.endsWith("&")) {
params += "!";
params = params.replace("&!", "");
}
}
}
String sdDeviceSign = "";
if (!TextUtils.isEmpty(deviceSign) && !TextUtils.isEmpty(sdSign)) {
sdDeviceSign = "deviceSign=" + deviceSign + "&sdSign=" + sdSign;
}
if (!TextUtils.isEmpty(sdDeviceSign) && !TextUtils.isEmpty(params)) {
params = "&" + params;
}
sign = sdDeviceSign + params + signKey + random;
System.out.println("http sign:" + sign);
builder.addHeader("X-APP-SIGN", MD5Helper.md5Hex(sign));
System.out.println("http sign md5Hex:" + MD5Helper.md5Hex(sign));
builder.addHeader("X-APP-RANDOM", random);
builder.addHeader("X-DEVICE-SIGN", deviceSign);
builder.addHeader("X-SD-SIGN", sdSign);
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getParameter(List<String> paramsKey, Map<String, String> params) {
//排序
Collections.sort(paramsKey);
StringBuilder sb = new StringBuilder();
for (String key : paramsKey) {
try {
String value = URLDecoder.decode(params.get(key), "UTF-8");
sb.append(sb.length() == 0 ? (key + "=" + value) : ("&" + key + "=" + value));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}
package com.common.toolbox.app_utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* MD5摘要算法
*
* @author Mansoul
* @date 2017/12/6 17:11
*/
public class MD5Helper {
private static final String HEX_CHARS = "0123456789abcdef";
private MD5Helper() {
throw new UnsupportedOperationException("Instantiation operation is not supported.");
}
static MessageDigest getDigest() {
try {
return MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException var1) {
throw new RuntimeException(var1);
}
}
public static byte[] md5(byte[] data) {
return getDigest().digest(data);
}
public static byte[] md5(String data) {
return md5(data.getBytes());
}
public static String md5Hex(byte[] data) {
return toHexString(md5(data));
}
public static String md5Hex(String data) {
return toHexString(md5(data));
}
public static String toHexString(byte[] b) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < b.length; ++i) {
sb.append("0123456789abcdef".charAt(b[i] >>> 4 & 15));
sb.append("0123456789abcdef".charAt(b[i] & 15));
}
return sb.toString();
}
public static byte[] toByteArray(String s) {
byte[] buf = new byte[s.length() / 2];
int j = 0;
for (int i = 0; i < buf.length; ++i) {
buf[i] = (byte) (Character.digit(s.charAt(j++), 16) << 4 | Character.digit(s.charAt(j++), 16));
}
return buf;
}
public static String appendParam(String returnStr, String paramId, String paramValue) {
if (!returnStr.equals("")) {
if (!paramValue.equals("")) {
returnStr = returnStr + "&" + paramId + "=" + paramValue;
}
} else if (!paramValue.equals("")) {
returnStr = paramId + "=" + paramValue;
}
return returnStr;
}
public static String appendParam_all(String returnStr, String paramId, String paramValue) {
if (!returnStr.equals("")) {
returnStr = returnStr + "&" + paramId + "=" + paramValue;
} else {
returnStr = paramId + "=" + paramValue;
}
return returnStr;
}
}
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