diff --git a/src/main/java/com/jeesite/modules/util/vir/AESUtil.java b/src/main/java/com/jeesite/modules/util/vir/AESUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..381e2cb8f34fef3d07f3fe90652b391c3b9366fe --- /dev/null +++ b/src/main/java/com/jeesite/modules/util/vir/AESUtil.java @@ -0,0 +1,34 @@ +package com.vir.ai.admin.utils; + +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.crypto.symmetric.SymmetricAlgorithm; +import cn.hutool.crypto.symmetric.SymmetricCrypto; + +public class AESUtil { + + /** + * aes加密 + * + * @param clientSecret 原始密钥 + */ + public static String encryptAesEncrypt(String clientId, String clientSecret) { + //构建--用clientId作为密钥 + SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, "bc39e70327ac4b1186a9a69ead73474e".getBytes()); + //加密为16进制表示 + String encryptHex = aes.encryptHex(clientSecret); + return encryptHex; + } + + /** + * aes解密 + * + * @param encryptClientSecret clientApp表里边的aes加密后密码 + */ + public static String decryptAesEncrypt(String clientId, String encryptClientSecret) { + //构建--用clientId作为密钥 + SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, "bc39e70327ac4b1186a9a69ead73474e".getBytes()); + //加密为16进制表示 + String decryptStr = aes.decryptStr(encryptClientSecret, CharsetUtil.CHARSET_UTF_8); + return decryptStr; + } +} diff --git a/src/main/java/com/jeesite/modules/util/vir/AiFileUtil.java b/src/main/java/com/jeesite/modules/util/vir/AiFileUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..32d5e1d8a6cf1accff5a0336945c5d336aca5eb0 --- /dev/null +++ b/src/main/java/com/jeesite/modules/util/vir/AiFileUtil.java @@ -0,0 +1,45 @@ +package com.vir.ai.admin.utils; + + +import cn.hutool.core.util.ZipUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.FileUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; + +/** + * @author adward + */ +@Slf4j +public class AiFileUtil { + private AiFileUtil() { + } + + public static void streamToResponse(File destFile) throws Exception{ + log.info("正在写入response"); + ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + assert requestAttributes != null; + HttpServletResponse response = requestAttributes.getResponse(); + + response.setHeader("content-type", "application/octet-stream"); + response.setContentType("application/octet-stream"); + String fileName = java.net.URLEncoder.encode(destFile.getName(),"UTF-8").replace("+","%20"); + response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + fileName); + + byte[] buff = new byte[1024]; + try (OutputStream os = response.getOutputStream(); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(destFile))) { + int i = bis.read(buff); + while (i != -1) { + os.write(buff, 0, i); + os.flush(); + i = bis.read(buff); + } + } + + log.info("文件流写入完成"); + } +}