Commit 2374e09e authored by 赵啸非's avatar 赵啸非

asdffffffffff

parent 494d6587
......@@ -7,4 +7,6 @@ public interface MessageService {
MessageReq decryptMessage(MessageReq req);
MessageReq encryptMessage(MessageReq req);
}
\ No newline at end of file
package com.mortals.xhx.busiz.message.impl;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.util.HttpUtil;
import com.mortals.framework.util.security.sm.SM4Utils;
import com.mortals.xhx.busiz.message.MessageService;
import com.mortals.xhx.busiz.req.MessageReq;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.utils.RSAUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.HashMap;
import java.util.Map;
import static com.mortals.framework.util.HttpUtil.HEADER_CONTENT_TYPE;
/**
* DeviceService
......@@ -42,6 +27,34 @@ public class MessageServiceImpl implements MessageService {
messageReq.setKey(req.getKey());
messageReq.setDecryptContent(decryptContent);
return messageReq;
}else if ("SM4".equalsIgnoreCase(req.getAlgorithm())) {
SM4Utils sm4Utils = new SM4Utils();
sm4Utils.setSecretKey(req.getPassword());
String decryptContent =sm4Utils.decryptData_ECB(req.getDecryptContent());
MessageReq messageReq = new MessageReq();
messageReq.setKey(req.getKey());
messageReq.setDecryptContent(decryptContent);
return messageReq;
}
return req;
}
@Override
public MessageReq encryptMessage(MessageReq req) {
if ("RSA".equalsIgnoreCase(req.getAlgorithm())) {
String decryptContent = RSAUtils.decode(req.getContent(), req.getPassword());
MessageReq messageReq = new MessageReq();
messageReq.setKey(req.getKey());
messageReq.setDecryptContent(decryptContent);
return messageReq;
}else if ("SM4".equalsIgnoreCase(req.getAlgorithm())) {
SM4Utils sm4Utils = new SM4Utils();
sm4Utils.setSecretKey(req.getPassword());
String decryptContent= sm4Utils.encryptData_ECB(req.getContent());
MessageReq messageReq = new MessageReq();
messageReq.setKey(req.getKey());
messageReq.setDecryptContent(decryptContent);
return messageReq;
}
return req;
}
......
......@@ -85,19 +85,48 @@ public class SecurityApiController {
@PostMapping("encrypt")
public String encrypt(MessageReq req) {
log.info("【加密】【请求体】--> " + JSONObject.toJSONString(req));
ApiResp<MessageResp> rsp = new ApiResp<>();
ApiResp<MessageReq> rsp = new ApiResp<>();
rsp.setCode(ApiRespCodeEnum.SUCCESS.getValue());
MessageResp messageResp = new MessageResp();
try {
MessageReq messageReq = messageService.encryptMessage(req);
rsp.setData(messageReq);
} catch (Exception e) {
log.error("接收数据失败", e);
rsp.setCode(ApiRespCodeEnum.FAILED.getValue());
rsp.setMsg(e.getMessage());
return JSON.toJSONString(rsp);
}
log.info("响应【加密】【响应体】--> " + JSONObject.toJSONString(rsp));
return JSON.toJSONString(rsp);
}
/**
* 批量加密
*
* @param reqList
* @return
*/
@PostMapping("encryptBatch")
public String encryptBatch(@RequestBody List<MessageReq> reqList) {
log.info("【批量加密】【请求体】--> " + JSONObject.toJSONString(reqList));
ApiResp<List<MessageReq>> rsp = new ApiResp<>();
rsp.setCode(ApiRespCodeEnum.SUCCESS.getValue());
try {
List<MessageReq> respList=new ArrayList<>();
reqList.stream().forEach(req->{
MessageReq messageReq = messageService.encryptMessage(req);
respList.add(messageReq);
});
rsp.setData(respList);
} catch (Exception e) {
log.error("接收数据失败", e);
rsp.setCode(ApiRespCodeEnum.FAILED.getValue());
rsp.setMsg(e.getMessage());
return JSON.toJSONString(rsp);
}
log.info("响应【加密】【响应体】--> " + JSONObject.toJSONString(rsp));
log.info("响应【批量加密】【响应体】--> " + JSONObject.toJSONString(rsp));
return JSON.toJSONString(rsp);
}
......
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