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(); } }