From e945a560b26437d610754cea5abfd992cd63fd7b Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 21 Aug 2024 13:39:14 +0800
Subject: [PATCH] 媒体文件处理,国土对接证书替换
---
src/main/java/com/dji/sample/droneairport/service/impl/RegistServiceImpl.java | 24 +++++++++++++++---------
1 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/dji/sample/droneairport/service/impl/RegistServiceImpl.java b/src/main/java/com/dji/sample/droneairport/service/impl/RegistServiceImpl.java
index 91959c0..6b69cde 100644
--- a/src/main/java/com/dji/sample/droneairport/service/impl/RegistServiceImpl.java
+++ b/src/main/java/com/dji/sample/droneairport/service/impl/RegistServiceImpl.java
@@ -88,7 +88,7 @@
String secret = SM4Util.generateSM4Key();
String jsonBody = buildRequestBody(registDto);
String base64 = SM4Util.encrypt(secret, jsonBody);
- String keys=Utils.encrypt(secret,"04225AACF606D800EA3C2C31FCF8FB161B15F7A8D0460DEB91013D4F228C455E76A2ED8D71BC6525B5DC5CC015C155479D8839950344AEE438A3A6305C90F8269F");
+ String keys=Utils.encrypt(secret,"04CF7CAE31B5130D1D5D1AC1DC2778D94533868A8D57FC02BBD97B688E07145DAAA96462DC83D9F348261F738D51C049770C43BA53B584917C9E30C6221B737CDD");
String enSM2=Utils.hexToBase64(keys);
// 设置请求头
HttpHeaders headers = new HttpHeaders();
@@ -115,12 +115,14 @@
// 使用 Hutool 的 JSONUtil 解析 JSON 字符串
JSONObject jsonObject = JSONUtil.parseObj(response.getBody());
+
// 提取 data 字段的值
String dataValue = jsonObject.getStr("data");
+
return SM4Util.decrypt(data,dataValue);
} catch (Exception e) {
// 异常处理
- throw new IllegalArgumentException("无人机机场注册失败: " + e.getMessage());
+ return(e.getMessage());
}
}
@@ -149,14 +151,14 @@
DeviceExpanSionEntity drone = expanSionMapper.selectOne(new LambdaQueryWrapper<DeviceExpanSionEntity>()
.eq(DeviceExpanSionEntity::getWorkspaceId, workspaceId)
.eq(DeviceExpanSionEntity::getType, 1));
+ registPort(airport);
AddDeviceDto dto = deviceEntityToDto(drone);
String secret = SM4Util.generateSM4Key();
// 构建请求体
String jsonBody = buildRequestBody(dto);
String base64 = SM4Util.encrypt(secret, jsonBody);
- String keys=Utils.encrypt(secret,"04225AACF606D800EA3C2C31FCF8FB161B15F7A8D0460DEB91013D4F228C455E76A2ED8D71BC6525B5DC5CC015C155479D8839950344AEE438A3A6305C90F8269F");
+ String keys=Utils.encrypt(secret,"04CF7CAE31B5130D1D5D1AC1DC2778D94533868A8D57FC02BBD97B688E07145DAAA96462DC83D9F348261F738D51C049770C43BA53B584917C9E30C6221B737CDD");
String enSM2=Utils.hexToBase64(keys);
-// registPort(airport);
// 设置请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
@@ -176,9 +178,7 @@
String.class);
HttpHeaders responseHeaders = response.getHeaders();
String responseSecret = responseHeaders.getFirst("x-lc-secret");
-
String data=deSM2(responseSecret, "00D631FD5615416EAB63D33A9E66E801F95DE840567504210080006081DE877AE3");
-
// 使用 Hutool 的 JSONUtil 解析 JSON 字符串
JSONObject jsonObject = JSONUtil.parseObj(response.getBody());
// 提取 data 字段的值
@@ -186,14 +186,14 @@
return SM4Util.decrypt(data,dataValue);
} catch (Exception e) {
// 异常处理
- return ("无人机机场设备注册失败: " + e.getMessage());
+ return (e.getMessage());
}
}
@Override
public Map<String, String> getDroneState(String deviceId) throws Exception {
String key = SM4Util.generateSM4Key();
- String secret = Utils.encrypt(key, "04225AACF606D800EA3C2C31FCF8FB161B15F7A8D0460DEB91013D4F228C455E76A2ED8D71BC6525B5DC5CC015C155479D8839950344AEE438A3A6305C90F8269F");
+ String secret = Utils.encrypt(key, "04CF7CAE31B5130D1D5D1AC1DC2778D94533868A8D57FC02BBD97B688E07145DAAA96462DC83D9F348261F738D51C049770C43BA53B584917C9E30C6221B737CDD");
DroneStateDto data = getAirportFromCache(deviceId);
String json = JSON.toJSONString(data);
String SM4Screct = SM4Util.encrypt(key, json);
@@ -268,15 +268,20 @@
@Override
public Map<String, String> AddTask(String base64, String Secret, String username) throws Exception {
ReturnTaskParam param = new ReturnTaskParam();
+ //获取SM4密钥
String secret = SM4Util.generateSM4Key();
+ //对SM4密钥进行SM2加密
String retse = Utils.encrypt(secret, "04225AACF606D800EA3C2C31FCF8FB161B15F7A8D0460DEB91013D4F228C455E76A2ED8D71BC6525B5DC5CC015C155479D8839950344AEE438A3A6305C90F8269F");
String taskId = UUID.randomUUID().toString();
String traceid = UUID.randomUUID().toString();
+ //通过SM2私钥解密请求头里的secret获取SM4密钥
String sm4Secrect = deSM2(Secret, "00D631FD5615416EAB63D33A9E66E801F95DE840567504210080006081DE877AE3");
+ //使用从请求头里获取的SM4密钥解析请求参数
String decryptedJson = SM4Util.decrypt(sm4Secrect, base64);
JSONObject jsonObject = new JSONObject(decryptedJson);
AddTaskDto addTaskDto = jsonToDto(jsonObject);
TaskInfo taskInfo = new TaskInfo();
+ //获取设备Id
List<String> listx = convertStringToList(addTaskDto.getDeviceid());
taskInfo.setId(traceid);
taskInfo.setTaskId(taskId);
@@ -292,6 +297,7 @@
for (TaskListDto taskListDto : tasklist) {
LotInfo lotInfo = convertToLotInfo(taskListDto);
lotInfo.setTaskId(taskId);
+ //
lotInfo.setType(1);
lotInfo.setTaskName(addTaskDto.getBizidname());
lotInfo.setUserName(username);
@@ -472,7 +478,7 @@
String secret = SM4Util.generateSM4Key();
String traceId = UUID.randomUUID().toString();
Map<String,String> info =new HashMap<>();
- String retse = Utils.encrypt(secret, "04225AACF606D800EA3C2C31FCF8FB161B15F7A8D0460DEB91013D4F228C455E76A2ED8D71BC6525B5DC5CC015C155479D8839950344AEE438A3A6305C90F8269F");
+ String retse = Utils.encrypt(secret, "04CF7CAE31B5130D1D5D1AC1DC2778D94533868A8D57FC02BBD97B688E07145DAAA96462DC83D9F348261F738D51C049770C43BA53B584917C9E30C6221B737CDD");
if (entity != null) {
DbUploadDto dto = DbEntityToDto(entity);
String data=buildRequestBody(dto);
--
Gitblit v1.9.3