|
|
|
@ -3,11 +3,14 @@ package com.baiye.util;
|
|
|
|
|
import cn.hutool.core.codec.Base64;
|
|
|
|
|
import cn.hutool.core.collection.ListUtil;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import cn.hutool.core.text.CharSequenceUtil;
|
|
|
|
|
import cn.hutool.core.text.StrPool;
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import cn.hutool.crypto.SecureUtil;
|
|
|
|
|
import cn.hutool.http.Header;
|
|
|
|
|
import cn.hutool.http.HttpException;
|
|
|
|
|
import cn.hutool.http.HttpRequest;
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
import com.baiye.constant.DefaultNumberConstants;
|
|
|
|
@ -19,6 +22,7 @@ import com.google.common.collect.Lists;
|
|
|
|
|
import com.google.common.collect.Maps;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.apache.log4j.chainsaw.Main;
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
@ -29,29 +33,6 @@ import java.util.*;
|
|
|
|
|
public class EncryptPhoneUtil {
|
|
|
|
|
private static final String HTTP_RESPONSE_JSON_FORMATE = "application/x-www-form-urlencoded";
|
|
|
|
|
|
|
|
|
|
public static String encryptPno(String tels) {
|
|
|
|
|
HashMap<String, Object> paramMap = Maps.newHashMap();
|
|
|
|
|
paramMap.put("sig", createSig());
|
|
|
|
|
paramMap.put("appid", SecretConstant.SECRET_DECRYPT_YY_ID);
|
|
|
|
|
paramMap.put("tels", Base64.encode(tels));
|
|
|
|
|
//链式构建请求
|
|
|
|
|
String result = HttpRequest.post(SecretConstant.SECRET_ENCRYPT_YY_URL)
|
|
|
|
|
.header(Header.CONTENT_TYPE, HTTP_RESPONSE_JSON_FORMATE)
|
|
|
|
|
.form(paramMap)
|
|
|
|
|
.timeout(2_000)
|
|
|
|
|
.execute().body();
|
|
|
|
|
SecretResponseBean secretResponseBean = JSONUtil.toBean(result, SecretResponseBean.class);
|
|
|
|
|
String nid = Base64.decodeStr(secretResponseBean.getTels());
|
|
|
|
|
|
|
|
|
|
// 解析响应内容
|
|
|
|
|
if (!MobileUtil.checkPhone(nid)) {
|
|
|
|
|
log.error("===========解密失败或者号码为空=======");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
return nid;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生成 sig 值
|
|
|
|
|
*
|
|
|
|
@ -65,7 +46,6 @@ public class EncryptPhoneUtil {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 批量解密
|
|
|
|
|
*
|
|
|
|
@ -78,14 +58,23 @@ public class EncryptPhoneUtil {
|
|
|
|
|
paramMap.put("appid", SecretConstant.SECRET_DECRYPT_YY_ID);
|
|
|
|
|
paramMap.put("req_id", RandomUtil.randomString(DefaultNumberConstants.TEN_NUMBER));
|
|
|
|
|
paramMap.put("tels", origins);
|
|
|
|
|
//链式构建请求
|
|
|
|
|
String result = HttpRequest.post(SecretConstant.SECRET_ENCRYPT_YY_URL)
|
|
|
|
|
.header(Header.CONTENT_TYPE, HTTP_RESPONSE_JSON_FORMATE)
|
|
|
|
|
.form(paramMap)
|
|
|
|
|
.timeout(2_000)
|
|
|
|
|
.execute().body();
|
|
|
|
|
// 解析响应内容
|
|
|
|
|
return JSONUtil.toBean(result, SecretResponseBean.class);
|
|
|
|
|
int count = DefaultNumberConstants.ZERO_NUMBER;
|
|
|
|
|
while (count < DefaultNumberConstants.THREE_NUMBER) {
|
|
|
|
|
//链式构建请求
|
|
|
|
|
try {
|
|
|
|
|
String result = HttpRequest.post(SecretConstant.SECRET_ENCRYPT_YY_URL)
|
|
|
|
|
.header(Header.CONTENT_TYPE, HTTP_RESPONSE_JSON_FORMATE)
|
|
|
|
|
.form(paramMap)
|
|
|
|
|
.timeout(2_000)
|
|
|
|
|
.execute().body();
|
|
|
|
|
// 解析响应内容
|
|
|
|
|
return JSONUtil.toBean(result, SecretResponseBean.class);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
count++;
|
|
|
|
|
log.error("============= request error {} ===========", e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new SecretResponseBean();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static List<String> encryptPhoneList(List<String> phoneSets) {
|
|
|
|
@ -104,5 +93,4 @@ public class EncryptPhoneUtil {
|
|
|
|
|
}
|
|
|
|
|
return encryptList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|