diff --git a/04.系统编码/Backend/pom.xml b/04.系统编码/Backend/pom.xml index 2e327c8..ff03b82 100644 --- a/04.系统编码/Backend/pom.xml +++ b/04.系统编码/Backend/pom.xml @@ -51,6 +51,12 @@ 1.0.29 + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.12.3 + + com.madgag @@ -58,6 +64,20 @@ 1.4 + + + org.apache.directory.studio + org.apache.commons.codec + 1.8 + + + + + org.bouncycastle + bcprov-jdk15on + 1.59 + + diff --git a/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/UserController.java b/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/UserController.java index e6d642e..a2e4721 100644 --- a/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/UserController.java +++ b/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/UserController.java @@ -1,8 +1,11 @@ package com.userinformation.backend.controller; import com.alibaba.druid.util.StringUtils; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.userinformation.backend.model.dao.User; import com.userinformation.backend.service.UserService; +import com.userinformation.backend.util.Coder; import com.userinformation.backend.util.RequestResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -13,17 +16,19 @@ import java.util.Objects; @RestController @RequestMapping("user") public class UserController { - private final UserService userService; + private final ObjectMapper objectMapper = new ObjectMapper(); + private final UserService userService; public UserController(UserService userService) { this.userService = userService; } @RequestMapping("userLogin") - public RequestResult userLogin(String userAccountNumber, String userPassword){ - User user = userService.userLogin(userAccountNumber, userPassword); + public RequestResult userLogin(String data) throws Exception { + User paramUser = objectMapper.readValue(Coder.decrypt(data, Coder.DEFAULT_KEY), User.class); + User user = userService.userLogin(paramUser.getUserAccountNumber(), paramUser.getUserPassword()); if(user == null){ return RequestResult.fail("用户名或密码错误"); } - return RequestResult.success(userService.userLogin(userAccountNumber, userPassword)); + return RequestResult.success(user); } @RequestMapping("findUserCount") @@ -32,8 +37,8 @@ public class UserController { } @RequestMapping("findAllUser") - public RequestResult findAllUserPage(Integer current, Integer size){ - return RequestResult.success(userService.findAllUserPage(current, size)); + public RequestResult findAllUserPage(Integer current, Integer size) throws Exception { + return RequestResult.success(Coder.encrypt(objectMapper.writeValueAsString(userService.findAllUserPage(current, size)), Coder.DEFAULT_KEY)); } @RequestMapping("findUserByUserAccountNumber") @@ -42,12 +47,13 @@ public class UserController { } @RequestMapping("findUserByUserName") - public RequestResult findUserByUserName(String userName, Integer current, Integer size){ - return RequestResult.success(userService.findUserByUserName(userName, current, size)); + public RequestResult findUserByUserName(String userName, Integer current, Integer size) throws Exception { + return RequestResult.success(Coder.encrypt(objectMapper.writeValueAsString(userService.findUserByUserName(userName, current, size)), Coder.DEFAULT_KEY)); } @RequestMapping("insertUser") - public RequestResult insertUser(@RequestBody User user){ + public RequestResult insertUser(String data) throws Exception { + User user = objectMapper.readValue(Coder.decrypt(data, Coder.DEFAULT_KEY), User.class); return RequestResult.success(userService.insertUser(user)); } @@ -57,7 +63,8 @@ public class UserController { } @RequestMapping("updateUser") - public RequestResult updateUser(@RequestBody User user){ + public RequestResult updateUser(String data) throws Exception { + User user = objectMapper.readValue(Coder.decrypt(data, Coder.DEFAULT_KEY), User.class); return RequestResult.success(userService.updateUser(user)); } } diff --git a/04.系统编码/Backend/src/main/java/com/userinformation/backend/handler/GlobalDefaultExceptionHandler.java b/04.系统编码/Backend/src/main/java/com/userinformation/backend/handler/GlobalDefaultExceptionHandler.java index 3cd93eb..b9bbefe 100644 --- a/04.系统编码/Backend/src/main/java/com/userinformation/backend/handler/GlobalDefaultExceptionHandler.java +++ b/04.系统编码/Backend/src/main/java/com/userinformation/backend/handler/GlobalDefaultExceptionHandler.java @@ -1,5 +1,7 @@ package com.userinformation.backend.handler; +import javax.crypto.BadPaddingException; + import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -9,6 +11,14 @@ import com.userinformation.backend.util.RequestResult; @ControllerAdvice @Slf4j public class GlobalDefaultExceptionHandler { + + @ExceptionHandler(BadPaddingException.class) + @ResponseBody + public RequestResult defaultBadPaddingExceptionHandler(BadPaddingException e) { + log.error("An error has occurred", e); + return RequestResult.fail("加密参数不合法,请重新请求"); + } + @ExceptionHandler(Exception.class) @ResponseBody public RequestResult defaultExceptionHandler(Exception e) { diff --git a/04.系统编码/Backend/src/main/java/com/userinformation/backend/model/dao/User.java b/04.系统编码/Backend/src/main/java/com/userinformation/backend/model/dao/User.java index bce0ca6..230b873 100644 --- a/04.系统编码/Backend/src/main/java/com/userinformation/backend/model/dao/User.java +++ b/04.系统编码/Backend/src/main/java/com/userinformation/backend/model/dao/User.java @@ -5,10 +5,16 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import lombok.Data; import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + @Data @TableName("user") public class User { @@ -28,5 +34,8 @@ public class User { private int userState; @TableField("user_registration_date") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime userRegistrationDate; } diff --git a/04.系统编码/Backend/src/main/java/com/userinformation/backend/util/BtoAAtoB.java b/04.系统编码/Backend/src/main/java/com/userinformation/backend/util/BtoAAtoB.java new file mode 100644 index 0000000..0f687f1 --- /dev/null +++ b/04.系统编码/Backend/src/main/java/com/userinformation/backend/util/BtoAAtoB.java @@ -0,0 +1,122 @@ +package com.userinformation.backend.util; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public class BtoAAtoB { + + + + private static String base64hash = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + + public static boolean isMatcher(String inStr ,String reg){ + Pattern pattern = Pattern.compile(reg); + Matcher matcher = pattern.matcher(inStr); + if(matcher.matches()){ + return true; + } + return false; + } + /** + * btoa method + * @param inStr + * @return + */ + public static String btoa(String inStr){ +// if (/([^\u0000-\u00ff])/.test(s)) { +// throw new Error('INVALID_CHARACTER_ERR'); +// } + if(inStr == null || isMatcher(inStr ,"([^\\u0000-\\u00ff])")){ + return null; + } + StringBuilder result = new StringBuilder(); + int i=0; + int mod=0; + int ascii; + int prev=0; + while (i < inStr.length()){ + ascii = inStr.charAt(i); + mod = i % 3; + + + switch(mod){ + case 0: + result.append(String.valueOf(base64hash.charAt(ascii >> 2))); + break; + case 1: + result.append(String.valueOf(base64hash.charAt((prev & 3) << 4 | (ascii >> 4)))); + break; + case 2: + result.append(String.valueOf(base64hash.charAt((prev & 0x0f) << 2 | (ascii >> 6)))); + result.append(String.valueOf(base64hash.charAt(ascii & 0x3f))); + break; + } + + + prev = ascii; + i++; + } + + + if(mod == 0) { + result.append(String.valueOf(base64hash.charAt((prev & 3) << 4))); + result.append("=="); + } else if (mod == 1) { + result.append(String.valueOf(base64hash.charAt((prev & 0x0f) << 2))); + result.append("="); + } + + + return result.toString(); + } + + + /** + * // atob method + // 逆转encode的思路即可 + * @param inStr + * @return + */ + public static String atob(String inStr){ + if(inStr == null) return null; + //s = s.replace(/\s|=/g, ''); + inStr = inStr.replaceAll("\\s|=", ""); + StringBuilder result = new StringBuilder(); + int cur; + int prev=-1; +// Integer prev=null; + int mod; + int i=0; + while (i < inStr.length()){ + cur = base64hash.indexOf(inStr.charAt(i)); + mod = i % 4; + switch (mod){ + case 0: + break; + case 1: + result.append(String.valueOf( (char)( prev << 2 | cur >> 4 ) )); + break; + case 2: + result.append(String.valueOf((char)( (prev & 0x0f) << 4 | cur >> 2) )); + break; + case 3: + result.append(String.valueOf( (char)((prev & 3) << 6 | cur) )); + break; + } + prev = cur; + i++; + } + + + + + return result.toString(); + } + + + + + + +} diff --git a/04.系统编码/Backend/src/main/java/com/userinformation/backend/util/Coder.java b/04.系统编码/Backend/src/main/java/com/userinformation/backend/util/Coder.java new file mode 100644 index 0000000..c02dfc8 --- /dev/null +++ b/04.系统编码/Backend/src/main/java/com/userinformation/backend/util/Coder.java @@ -0,0 +1,121 @@ +package com.userinformation.backend.util; + +import javax.crypto.Cipher; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.security.SecureRandom; +import java.util.Random; + +import org.apache.commons.codec.binary.Base64; + +/** + * @describe: Aes加密 + * @author: xiaowuler + * @createTime: 2021-12-07 16:59 + */ +public class Coder { + + public static final String DEFAULT_KEY = "XiaowuleVeryCool"; + + /** + * 加密算法AES + */ + private static final String KEY_ALGORITHM = "AES"; + + /** + * key的长度,Wrong key size: must be equal to 128, 192 or 256 + * 传入时需要16、24、36 + */ + private static final Integer KEY_LENGTH = 16 * 8; + + /** + * 算法名称/加密模式/数据填充方式 + * 默认:AES/ECB/PKCS5Padding + */ + private static final String ALGORITHMS = "AES/ECB/PKCS5Padding"; + + /** + * 后端AES的key,由静态代码块赋值 + */ + public static String key; + + static { + key = getKey(); + } + + /** + * 获取key + */ + public static String getKey() { + StringBuilder uid = new StringBuilder(); + //产生16位的强随机数 + Random rd = new SecureRandom(); + for (int i = 0; i < KEY_LENGTH / 8; i++) { + //产生0-2的3位随机数 + int type = rd.nextInt(3); + switch (type) { + case 0: + //0-9的随机数 + uid.append(rd.nextInt(10)); + break; + case 1: + //ASCII在65-90之间为大写,获取大写随机 + uid.append((char) (rd.nextInt(25) + 65)); + break; + case 2: + //ASCII在97-122之间为小写,获取小写随机 + uid.append((char) (rd.nextInt(25) + 97)); + break; + default: + break; + } + } + return uid.toString(); + } + + /** + * 加密 + * + * @param content 加密的字符串 + * @param encryptKey key值 + */ + public static String encrypt(String content, String encryptKey) throws Exception { + //设置Cipher对象 + Cipher cipher = Cipher.getInstance(ALGORITHMS, getInstance()); + cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(encryptKey.getBytes(), KEY_ALGORITHM)); + + //调用doFinal + byte[] b = cipher.doFinal(content.getBytes(StandardCharsets.UTF_8)); + + // 转base64 + return Base64.encodeBase64String(b); + + } + + /** + * 解密 + * + * @param encryptStr 解密的字符串 + * @param decryptKey 解密的key值 + */ + public static String decrypt(String encryptStr, String decryptKey) throws Exception { + //base64格式的key字符串转byte + byte[] decodeBase64 = Base64.decodeBase64(encryptStr); + //设置Cipher对象 + Cipher cipher = Cipher.getInstance(ALGORITHMS, getInstance()); + cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decryptKey.getBytes(), KEY_ALGORITHM)); + + //调用doFinal解密 + byte[] decryptBytes = cipher.doFinal(decodeBase64); + return new String(decryptBytes); + } + + private static org.bouncycastle.jce.provider.BouncyCastleProvider bouncyCastleProvider = null; + + public static synchronized org.bouncycastle.jce.provider.BouncyCastleProvider getInstance() { + if (bouncyCastleProvider == null) { + bouncyCastleProvider = new org.bouncycastle.jce.provider.BouncyCastleProvider(); + } + return bouncyCastleProvider; + } +} diff --git a/04.系统编码/Backend/src/main/resources/application.yml b/04.系统编码/Backend/src/main/resources/application.yml index 73d76a2..4ba9876 100644 --- a/04.系统编码/Backend/src/main/resources/application.yml +++ b/04.系统编码/Backend/src/main/resources/application.yml @@ -1,5 +1,6 @@ server: port: 8002 +# port: 8082 spring: datasource: url: jdbc:mysql://112.124.40.88:33306/user_information?useUnicode=true&characteEncoding=utf-8 @@ -7,13 +8,18 @@ spring: password: 3cqscbr@only1 # url: jdbc:mysql://10.124.102.10:3306/user_information?useUnicode=true&characteEncoding=utf-8 # username: root +# password: Njsqxj_sthj@2021 +# url: jdbc:mysql://192.168.6.6:3306/njsthj?useUnicode=true&characteEncoding=utf-8 +# username: njsthj # password: Njsqxj_sthj@2021 driver-class-name: com.mysql.cj.jdbc.Driver custom: image: - url: ${custom.parent-url}:8002/product - path: D:/Deployments/LamanRadar/product + url: ${custom.parent-url}:${server.port}/product gifPath: ${custom.image.path}/gif - parent-url: http://112.124.40.88 +# path: D:/Deployments/LamanRadar/product +# parent-url: http://112.124.40.88 # path: /home/project/NJEnvironmentPlatform/html/product # parent-url: http://10.124.102.10 + path: /home/develop/product + parent-url: http://rdp.nagr.com.cn diff --git a/04.系统编码/Backend/src/test/java/com/userinformation/backend/UserInformationApplicationTests.java b/04.系统编码/Backend/src/test/java/com/userinformation/backend/UserInformationApplicationTests.java index 077638d..25dee09 100644 --- a/04.系统编码/Backend/src/test/java/com/userinformation/backend/UserInformationApplicationTests.java +++ b/04.系统编码/Backend/src/test/java/com/userinformation/backend/UserInformationApplicationTests.java @@ -1,17 +1,10 @@ package com.userinformation.backend; -import javax.imageio.ImageIO; - -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import com.userinformation.backend.controller.ImageController; +import com.userinformation.backend.util.Coder; @SpringBootTest class UserInformationApplicationTests { @@ -20,15 +13,17 @@ class UserInformationApplicationTests { private ImageController imageController; @Test - void contextLoads() throws IOException { - - List files = new ArrayList<>(){{ - add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_RAIN.png"); - add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_Q2.png"); - add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_T2.png"); - add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_TN.png"); - add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_TX.png"); - }}; + void contextLoads() throws Exception { + String result = Coder.decrypt("uVrfL42raAuOFIgASm1rhmg3xslRQWLRdvLK/jNElVxgm0mYldAXHWXe2ygUdkmZgKwuTQU8F4ntEeeHG+8Bcg==", "xiaowulezhencool"); +// String result = BtoAAtoB.atob("JTdCJTIydXNlckFjY291bnROdW1iZXIlMjI6JTIyYWRtaW4lMjIsJTIydXNlclBhc3N3b3JkJTIyOiUyMjEyMzQ1NiUyMiU3RA=="); + System.out.println(); +// List files = new ArrayList<>(){{ +// add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_RAIN.png"); +// add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_Q2.png"); +// add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_T2.png"); +// add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_TN.png"); +// add("C:\\Users\\xiaowuler\\Desktop\\images (2)\\TFLD_TX.png"); +// }}; // imageController.createGif(files); // File inputFile = new File("C:\\Users\\xiaowuler\\Desktop\\images\\decision-support\\plan-advice\\control-experiment\\TFLD_Q2.tif"); diff --git a/04.系统编码/Backend/部署.md b/04.系统编码/Backend/部署.md index 6452b9d..01da178 100644 --- a/04.系统编码/Backend/部署.md +++ b/04.系统编码/Backend/部署.md @@ -3,4 +3,7 @@ ``` nohup /usr/local/java/jdk-15/bin/java -jar UserInformation-0.0.1-SNAPSHOT.jar & ``` +``` +nohup /home/develop/jdk-15/bin/java -jar UserInformation-0.0.1-SNAPSHOT.jar & +``` diff --git a/04.系统编码/Frontend/package-lock.json b/04.系统编码/Frontend/package-lock.json index 6d881dc..f1f9b81 100644 --- a/04.系统编码/Frontend/package-lock.json +++ b/04.系统编码/Frontend/package-lock.json @@ -385,9 +385,9 @@ "dev": true }, "@types/node": { - "version": "16.11.10", - "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-16.11.10.tgz", - "integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==", + "version": "16.11.12", + "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-16.11.12.tgz", + "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==", "dev": true }, "@types/qs": { @@ -875,6 +875,11 @@ "which": "^2.0.1" } }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.nlark.com/crypto-js/download/crypto-js-4.1.1.tgz", + "integrity": "sha1-nkhbzwNSEEG9hYRHhrg/t2GXNs8=" + }, "csstype": { "version": "2.6.19", "resolved": "https://registry.npmmirror.com/csstype/download/csstype-2.6.19.tgz?cache=0&sync_timestamp=1637224507298&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcsstype%2Fdownload%2Fcsstype-2.6.19.tgz", @@ -1503,6 +1508,11 @@ "supports-color": "^7.0.0" } }, + "js-md5": { + "version": "0.7.3", + "resolved": "https://registry.nlark.com/js-md5/download/js-md5-0.7.3.tgz", + "integrity": "sha1-tPL7sLMnRV9ZjWcn447Ccs0Jw/I=" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1619345098261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz", diff --git a/04.系统编码/Frontend/package.json b/04.系统编码/Frontend/package.json index 7cecb78..2f59800 100644 --- a/04.系统编码/Frontend/package.json +++ b/04.系统编码/Frontend/package.json @@ -9,7 +9,9 @@ "axios": "^0.21.4", "browser-tiff.js": "^1.0.1", "element-plus": "^1.2.0-beta.4", + "js-md5": "^0.7.3", "moment": "^2.29.1", + "crypto-js": "^4.1.1", "qs": "^6.10.1", "typescript": "^4.5.2", "vue": "^3.0.4", diff --git a/04.系统编码/Frontend/src/components/Login.vue b/04.系统编码/Frontend/src/components/Login.vue index d93628c..afaa4b2 100644 --- a/04.系统编码/Frontend/src/components/Login.vue +++ b/04.系统编码/Frontend/src/components/Login.vue @@ -24,6 +24,7 @@ import { post } from "./../uilts/axios"; import { useRouter } from "vue-router" import { ElMessage } from 'element-plus' import { setStaff } from "../uilts/storage"; +import { encrypt } from '../uilts/Coder'; export default { name: 'Login', @@ -60,9 +61,13 @@ export default { type: 'warning' }) }else { - post("user/userLogin",{ + let params = { userAccountNumber: option.inputName, userPassword: option.inputPassword + }; + + post("user/userLogin",{ + data: encrypt(params) }).then((res :any)=>{ if (res.error !=0){ ElMessage.error({ diff --git a/04.系统编码/Frontend/src/components/SystemManagement.vue b/04.系统编码/Frontend/src/components/SystemManagement.vue index bd1eeea..51329a9 100644 --- a/04.系统编码/Frontend/src/components/SystemManagement.vue +++ b/04.系统编码/Frontend/src/components/SystemManagement.vue @@ -92,6 +92,7 @@ import {post} from "../uilts/axios"; import {ElMessage} from 'element-plus' import {format} from '../uilts/String'; +import { decrypt, encrypt } from '../uilts/Coder'; export default { name: 'SystemManagement', @@ -125,8 +126,9 @@ export default { current: option.current, size: option.size }).then((res: any) => { - option.tableData = res.data.records; - option.total = res.data.total; + const data = decrypt(res.data); + option.tableData = data.records; + option.total = data.total; }) } @@ -223,7 +225,7 @@ export default { const submit = () => { if (verify()) return; if (option.title === '修改信息') { - post("user/updateUser", option.form, "application/json").then((res: any) => { + post("user/updateUser", {data: encrypt(option.form)}).then((res: any) => { option.dialogFormVisible = false if (res.error != 0) { ElMessage.error({ @@ -243,7 +245,7 @@ export default { if (option.title === '添加用户') { if (verify()) return; - post("user/insertUser", option.form, "application/json").then((res: any) => { + post("user/insertUser", {data: encrypt(option.form)}).then((res: any) => { option.dialogFormVisible = false if (res.error != 0) { ElMessage.error({ diff --git a/04.系统编码/Frontend/src/postcss.config.ts b/04.系统编码/Frontend/src/postcss.config.ts new file mode 100644 index 0000000..4e9b2fa --- /dev/null +++ b/04.系统编码/Frontend/src/postcss.config.ts @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + 'autoprefixer': {browsers: 'last 5 version'} + } +} \ No newline at end of file diff --git a/04.系统编码/Frontend/src/tes.babelrc b/04.系统编码/Frontend/src/tes.babelrc new file mode 100644 index 0000000..18f65e7 --- /dev/null +++ b/04.系统编码/Frontend/src/tes.babelrc @@ -0,0 +1,6 @@ +{ + "presets": [ + ["es2015", { "modules": false }] + ], + "plugins": ["transform-object-rest-spread"] //不能解析es6语法关键解决 +} \ No newline at end of file diff --git a/04.系统编码/Frontend/src/uilts/Coder.ts b/04.系统编码/Frontend/src/uilts/Coder.ts new file mode 100644 index 0000000..1d191fe --- /dev/null +++ b/04.系统编码/Frontend/src/uilts/Coder.ts @@ -0,0 +1,25 @@ +var CryptoJS: any; +import("crypto-js").then((response) => { + CryptoJS = response; +}); +const defaultKey = "XiaowuleVeryCool"; + +export function encrypt(plaintext, key: string = defaultKey) { + if (plaintext instanceof Object) { + //JSON.stringify + plaintext = JSON.stringify(plaintext) + } + let encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(plaintext), CryptoJS.enc.Utf8.parse(key), {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}); + return encrypted.toString(); +} + +//解密 +export function decrypt(ciphertext, key: string = defaultKey) { + let decrypt = CryptoJS.AES.decrypt(ciphertext, CryptoJS.enc.Utf8.parse(key), {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}); + let decString = CryptoJS.enc.Utf8.stringify(decrypt).toString(); + if(decString.charAt(0) === "{" || decString.charAt(0) === "[" ){ + //JSON.parse + decString = JSON.parse(decString); + } + return decString; +} \ No newline at end of file diff --git a/04.系统编码/Frontend/src/uilts/Config.ts b/04.系统编码/Frontend/src/uilts/Config.ts index 5bdd79a..649d721 100644 --- a/04.系统编码/Frontend/src/uilts/Config.ts +++ b/04.系统编码/Frontend/src/uilts/Config.ts @@ -2,8 +2,9 @@ import { Moment } from "moment"; import { format } from "./String"; export class Config { - public static parentUrl: string = "http://112.124.40.88:8002/product/picture"; + // public static parentUrl: string = "http://112.124.40.88:8002/product/picture"; // public static parentUrl: string = "http://10.124.102.10:8002/product/picture"; + public static parentUrl: string = "http://rdp.nagr.com.cn:8082/product/picture"; } export class MicrowaveRadiationConfig { diff --git a/04.系统编码/Frontend/src/uilts/axios.ts b/04.系统编码/Frontend/src/uilts/axios.ts index 06a683a..f3c7cbe 100644 --- a/04.系统编码/Frontend/src/uilts/axios.ts +++ b/04.系统编码/Frontend/src/uilts/axios.ts @@ -5,7 +5,9 @@ import { ElLoading } from 'element-plus' let loading = null; const service = axios.create({ - baseURL:"http://112.124.40.88:8002", + // baseURL:"http://112.124.40.88:8002", + // baseURL: '', + baseURL: 'http://localhost:8002', timeout: 500000 })