From 94c78c2e5f4affd2e92195d70b7576e6da24325d Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Wed, 05 Feb 2025 13:02:13 +0800
Subject: [PATCH] 煤矿缴费修改
---
ruoyi-admin/src/test/java/com/ruoyi/TestEncrypt.java | 131 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 131 insertions(+), 0 deletions(-)
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/TestEncrypt.java b/ruoyi-admin/src/test/java/com/ruoyi/TestEncrypt.java
new file mode 100644
index 0000000..c2a7544
--- /dev/null
+++ b/ruoyi-admin/src/test/java/com/ruoyi/TestEncrypt.java
@@ -0,0 +1,131 @@
+package com.ruoyi;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.gkhy.exam.institutionalaccess.model.req.ThCertReqDTO;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.constant.ResultConstants;
+import com.ruoyi.common.exception.BusinessException;
+import lombok.extern.log4j.Log4j2;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.List;
+import java.util.UUID;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = RuoYiApplication.class)
+@ActiveProfiles("dev")
+@Log4j2
+public class TestEncrypt {
+
+
+ private static final String key="Bd26jqDDJcdnBocn";
+ private static final String iv ="oVKRQCjElggSbd8D";
+
+ /**
+ * 加密
+ */
+ @Test
+ public void text001(){
+
+ //加密
+ List<ThCertReqDTO> thCertDTOs=new ArrayList<>();
+ ThCertReqDTO thCertDTO = new ThCertReqDTO();
+ thCertDTO.setUuid(UUID.randomUUID().toString());
+ JSONObject jsonObject = new JSONObject();
+ thCertDTO.setName("王五");
+ thCertDTO.setIdcard("123456789012345679");
+ thCertDTO.setBatchUuid("1ef0b81f-dcb7-62a9-ad8f-63e252089bc8");
+ thCertDTO.setTrainOrgName("1234567890123");
+ thCertDTO.setCertTime(LocalDateTime.now());
+ thCertDTO.setCertUrl("https://p26.toutiaoimg.com/origin/tos-cn-i-qvj2lq49k0/22f10850c5234b5285350743cfa16357");
+ thCertDTOs.add(thCertDTO);
+ String jsonString = JSONObject.toJSONString(thCertDTOs);
+ String encrypt = encrypt(jsonString);
+ log.info("加密后为:"+encrypt);
+
+ //解密
+ String decrypt = "";
+ try {
+ decrypt = decrypt(encrypt);
+ }catch (Exception e){
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
+ }
+ log.info("解密后为:"+decrypt);
+ }
+
+ @Test
+ public void dec(){
+ String mes = "nCVoBsCqZnKKYg0NBnsUPgjZpienDHaThN+mIcdcK9IhbjCEZj+ePQJUyLqXWY5+On7OiaCBPbdpx9NbsmR/IbIz0eVhh0BuI0iwbsB5vxkFd0LQHb8GkIM0aqMjwgQLHb1QQKYgne3Nh6/GsOlFveYQJPwiwXfdzsd/zKeWM6gohNBYuXDHAkwTboq/L7TFDVjTNfbvsu8pCVc0txoFmOTkvq5JUCsqBk4RvmM/AZ+yZjTCYkzkufg/sF5CFpbr36nCOzCGGJc1/+wm2qREzzC0HUxinhsXoMm6qJqa7/M3XDjWh/t6SDtxlzBLEgUcyEj2FL7vWLG9oB7EsnExcuY5YpQxJG45qGY6y9kYDF/swQaPsPIpGJhtczamAZuwi/DHuGWJsxqEWyWVEIc80gRek59j0vBMAmn/QVVP3Zu+qtxbJKRY0BAEaNKvIb66";
+ String decrypt = "";
+ try {
+ decrypt = decrypt(mes);
+ }catch (Exception e){
+ throw new BusinessException(this.getClass(), ResultConstants.THREE_INSTITUTION_PARAMM_NULL);
+ }
+ log.info("解密后为:"+decrypt);
+ }
+
+
+ private String decrypt(String data) {
+ try
+ {
+ byte[] encryptCode = Base64.getDecoder().decode(data);//先用base64解密
+
+ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+ SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
+ IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
+
+ cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);
+
+ byte[] original = cipher.doFinal(encryptCode);
+ String originalString = new String(original);
+ return originalString.trim();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException(e.getMessage());
+ }
+ }
+
+
+ private String encrypt(String data){
+ try {
+ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+ int blockSize = cipher.getBlockSize();
+ byte[] dataBytes = data.getBytes(Constants.UTF8);
+ int plaintextLength = dataBytes.length;
+
+ if (plaintextLength % blockSize != 0) {
+ plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
+ }
+
+ byte[] plaintext = new byte[plaintextLength];
+ System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
+
+ SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
+ IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes()); // CBC模式,需要一个向量iv,可增加加密算法的强度
+
+ cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
+ byte[] encrypted = cipher.doFinal(plaintext);
+ // BASE64做转码。
+ String aseEncode = Base64.getEncoder().encodeToString(encrypted);
+ return aseEncode;
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException(e.getMessage());
+ }
+ }
+
+
+
+}
--
Gitblit v1.9.2