public ResponseEntity<JSONObject> validation(JSONObject body, HttpServletRequest request) {
// 获取第三方MD5加密串
String sign = CommonUtils.getString(request.getHeader("sign"));
// 第三方标识
Long id = CommonUtils.getLong(request.getHeader("key"));
// 时间戳
Long dateTime = body.getLong("dateTime");
// 当前时间 - 传入时间 大于或者小于 TIMES 则认为超出有效时间
Long thisTime = System.currentTimeMillis() - dateTime;
if (thisTime > TIMES || thisTime < 1) {
return ResponseUtils.ok("验签错误");
}
Company company = companyMapper.selectById(id);
if (CommonUtils.isEmpty(company) && CommonUtils.isEmpty(company.getEncrypted())) {
return ResponseUtils.ok("验签错误");
}
// 第三方密钥
body.put("key", company.getEncrypted());
// json排序
body = CommonUtils.jsonSort(body);
// 转小写
String str = JSON.toJSONString(body).toLowerCase();
// 加密验证
String md5 = DigestUtils.md5DigestAsHex(str.getBytes());
if (!md5.equals(sign)) {
return ResponseUtils.ok("验签错误");
}
return ResponseUtils.ok("验签通过");
}
java 验签
最新推荐文章于 2023-12-01 10:06:11 发布