package com.platform.verification;
|
|
|
import com.hx.util.StringUtils;
|
import com.hx.util.rsa.RSAUtil;
|
import com.platform.resultTool.PlatformCode;
|
import com.platform.resultTool.PlatformResult;
|
|
/**平台校验方法
|
* @author CJH
|
* @date 2021-10-20
|
*/
|
public class VerificationTool {
|
|
/**校验方法请求
|
* @param appId 用户的APPID
|
* @param sign 用户签名
|
* @param sys_appId 系统的appid
|
* @param sys_private_key 系统的RSA秘钥
|
* @return
|
*/
|
public static PlatformResult verification(String appId,String sign,String sys_appId,String sys_private_key){
|
|
if (StringUtils.isEmpty(sign)) {
|
return PlatformResult.failure(PlatformCode.ERROR_SIGN, "签名错误");
|
}
|
if (StringUtils.isEmpty(appId)) {
|
return PlatformResult.failure(PlatformCode.ERROR_APPIS, "APPID错误");
|
}
|
|
//校验appid是否存在
|
if(!sys_appId.equals("appId")){
|
return PlatformResult.failure(PlatformCode.ERROR_APPIS, "APPID错误");
|
}
|
|
//解密RSA
|
String decrypt = null;
|
try{
|
decrypt = RSAUtil.privateDecrypt(sign, sys_private_key);
|
}catch (Exception e){
|
|
}
|
if(StringUtils.isEmpty(decrypt)){
|
return PlatformResult.failure(PlatformCode.ERROR_SIGN, "签名错误");
|
}
|
|
//decrypt格式:appId_时间戳_随机数(尽量少)
|
String[] decrypts = decrypt.split("_");
|
if(decrypts.length != 3){
|
return PlatformResult.failure(PlatformCode.ERROR_SIGN, "签名错误");
|
}
|
|
if (!appId.equals(decrypts[0])) {
|
return PlatformResult.failure(PlatformCode.ERROR_SIGN, "签名错误");
|
}
|
return PlatformResult.success();
|
}
|
|
}
|