| | |
| | | import com.dji.sample.droneairport.model.param.AddDeviceParam; |
| | | import com.dji.sample.droneairport.model.param.RegistParam; |
| | | import com.dji.sample.droneairport.service.RegistService; |
| | | import com.dji.sample.droneairport.utils.AuthUtil; |
| | | import com.dji.sample.droneairport.utils.SM2.Utils; |
| | | import com.dji.sample.droneairport.utils.SM4Util; |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import org.bouncycastle.crypto.InvalidCipherTextException; |
| | | import org.springframework.http.*; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import java.io.IOException; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Service |
| | | public class RegistServiceImpl implements RegistService { |
| | |
| | | // 构建请求体 |
| | | String jsonBody = buildRequestBody(param); |
| | | // 设置请求头 |
| | | String base64=SM4Util.encrypt("jsimjrby3wqb7dbq",jsonBody); |
| | | // 设置请求头 |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | headers.setContentType(MediaType.APPLICATION_JSON); |
| | | headers.setAccept(List.of(MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN, MediaType.ALL)); |
| | | headers.set("Accept-Language", "zh-CN,zh;q=0.9"); |
| | | headers.setConnection("keep-alive"); |
| | | headers.set("x-auth-token", ""); |
| | | headers.set("x-lc-token",""); |
| | | headers.set("x-auth-token", AuthUtil.getToken()); |
| | | headers.set("x-lc-token",Utils.encrypt("jsimjrby3wqb7dbq","044D6061FC08A19D3F32CEAA8CF6679B40500008FD741FC26DE7E50AEBF3A9115D47274437730EADEDAEF0CCC4853C5F0B35B30C6AEA83A5F6FBCA4ABEAC9E3B98")); |
| | | // 构建请求实体 |
| | | HttpEntity<String> requestEntity = new HttpEntity<>(jsonBody, headers); |
| | | HttpEntity<String> requestEntity = new HttpEntity<>(base64, headers); |
| | | // 发送请求 |
| | | ResponseEntity<String> response = restTemplate.exchange( |
| | | "https://wrj.shuixiongit.com/drone-api/droneAirport/test", |
| | | "https://xcx.geoway.com.cn:8033/v1/droneAirport/RegistService", |
| | | HttpMethod.POST, |
| | | requestEntity, |
| | | String.class); |
| | |
| | | try { |
| | | // 构建请求体 |
| | | String jsonBody = buildRequestBody(param); |
| | | String base64 = SM4Util.encrypt("jsimjrby3wqb7dbq", jsonBody); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | System.out.println(AuthUtil.getToken()); |
| | | // 设置请求头 |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | headers.setContentType(MediaType.APPLICATION_JSON); |
| | | headers.setAccept(List.of(MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN, MediaType.ALL)); |
| | | headers.set("Accept-Language", "zh-CN,zh;q=0.9"); |
| | | headers.setConnection("keep-alive"); |
| | | headers.set("x-auth-token", ""); |
| | | headers.set("x-lc-token",""); |
| | | headers.set("x-lc-token", AuthUtil.getToken()); |
| | | headers.set("x-lc-secret", Utils.encrypt("jsimjrby3wqb7dbq", "044D6061FC08A19D3F32CEAA8CF6679B40500008FD741FC26DE7E50AEBF3A9115D47274437730EADEDAEF0CCC4853C5F0B35B30C6AEA83A5F6FBCA4ABEAC9E3B98")); |
| | | |
| | | // 构建请求实体 |
| | | HttpEntity<String> requestEntity = new HttpEntity<>(jsonBody, headers); |
| | | HttpEntity<byte[]> requestEntity = new HttpEntity<>(base64.getBytes(), headers); |
| | | |
| | | // 发送请求 |
| | | ResponseEntity<String> response = restTemplate.exchange( |
| | | "https://wrj.shuixiongit.com/drone-api/droneAirport/test", |
| | | HttpMethod.POST, |
| | | requestEntity, |
| | | String.class); |
| | | return response.getBody(); |
| | | RestTemplate restTemplate = new RestTemplate(); |
| | | String response = restTemplate.postForObject("https://xcx.geoway.com.cn:8033/v1/droneAirport/addDevice", requestEntity, String.class); |
| | | |
| | | return response; |
| | | |
| | | } catch (Exception e) { |
| | | // 异常处理 |
| | |
| | | throw new RuntimeException("数据有误", e); |
| | | } |
| | | } |
| | | public static String getSM2(String data, String key, String pubKey) throws InvalidCipherTextException, IOException { |
| | | String text = SM4Util.encrypt(key, data); |
| | | String encrypt = Utils.encrypt(text, pubKey); |
| | | encrypt = Utils.hexToBase64(encrypt); |
| | | return encrypt; |
| | | } |
| | | |
| | | public static String deSM2(String Base64, String priKey, String serect) throws Exception { |
| | | String hex = Utils.convertBase64ToHex(Base64); |
| | | String decrypt = Utils.decrypt(hex, priKey); |
| | | return SM4Util.decrypt(serect, decrypt); |
| | | } |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | System.out.println(getSM2("jsimjrby3wqb7dbq", "jsimjrby3wqb7dbq", "044c4e29d89bc0389409e204b8c072af927d2bfbc62265472463f6fa2642e565411925c58ca72b8da87d743afffa9f94aeaee4351a0511692e06ad1567ba32d236")); |
| | | |
| | | System.out.println(deSM2("BN2taHcWvZhysmUbAHjPAWo/vAgW3pCTv4CK0dHJoUpM62k1oUeYnMvK4twfcBs/qkbygkAt+4pUaBa6iomM9MSKVCtOSb1QAaAQ9milAvkDPSBE9yrYHzLQeLkT9HwENBJ5NanF6vl2nPgpC1d1q+XeJEBrEvJtpQkSHHsh/me/1+h9zPy0MpMkH89S", |
| | | "00e9ced7f847e5b414ef4f4f164ec5f83172b3183826c075f0e37d3f8a1e1f6c2c", "jsimjrby3wqb7dbq")); |
| | | System.out.println(createKey()); |
| | | } |
| | | public static Map<String, String> createKey() throws NoSuchAlgorithmException { |
| | | Map<String, String> keyPair = Utils.createKeyPair(); |
| | | Map<String, String> newKey = new HashMap<>(); |
| | | newKey.put("publicKey", keyPair.get("pbcky")); |
| | | newKey.put("privateKey", keyPair.get("pveky")); |
| | | return newKey; |
| | | } |
| | | } |