Browse Source

登录机密方式改为RSA加密

dev-V1.0.5
vincent 2 months ago
parent
commit
64f7316006
  1. 35
      zdxt-common/zdxt-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java
  2. 36
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/LoginController.java
  3. 4
      zdxt-web-client/zdxt-admin-plus-ui/.env.development
  4. 4
      zdxt-web-client/zdxt-admin-plus-ui/.env.development-wmy-cust
  5. 4
      zdxt-web-client/zdxt-admin-plus-ui/.env.development-zrb-cust
  6. 4
      zdxt-web-client/zdxt-admin-plus-ui/.env.production
  7. 16
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/login.vue
  8. 16
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/loginByPassword.vue
  9. 16
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/loginByV1System.vue
  10. 1
      zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-dev
  11. 1
      zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-dev-wmy
  12. 1
      zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-dev-zrb
  13. 1
      zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-prod
  14. 1
      zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-test
  15. 16
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/auth/login.vue
  16. 16
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/auth/loginByPassword.vue
  17. 16
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/login.vue
  18. 1
      zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-dev
  19. 1
      zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-dev-wmy
  20. 1
      zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-dev-zrb
  21. 1
      zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-prod
  22. 16
      zdxt-web-client/zdxt-efcode-supervision-app/src/views/supervision/login.vue
  23. 1
      zdxt-web-client/zdxt-efcode-supervision-app/vite-env/.env.supervision-dev
  24. 1
      zdxt-web-client/zdxt-efcode-supervision-app/vite-env/.env.supervision-prod
  25. 6
      zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml
  26. 2
      zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-prod.yml

35
zdxt-common/zdxt-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java

@ -8,8 +8,10 @@ import cn.hutool.crypto.SmUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.crypto.asymmetric.SM2;
import org.dromara.common.encrypt.config.jasypt.JasyptUtils;
import java.nio.charset.StandardCharsets;
import java.security.KeyPair;
import java.util.HashMap;
import java.util.Map;
@ -310,4 +312,37 @@ public class EncryptUtils {
return SmUtil.sm3(data);
}
public static void main(String[] args) {
KeyPair keyPair = SecureUtil.generateKeyPair("RSA");
byte[] publicKeyBytes = keyPair.getPublic().getEncoded();
byte[] privateKeyBytes = keyPair.getPrivate().getEncoded();
String publicKeyBase64 = Base64.encode(publicKeyBytes);
String privateKeyBase64 = Base64.encode(privateKeyBytes);
// System.out.println("========== RSA 2048-bit 密钥对 ==========");
// System.out.println();
// System.out.println("【前端 env 公钥】(VITE_APP_RSA_PUBLIC_KEY)");
// System.out.println(publicKeyBase64);
// System.out.println();
// System.out.println("【后端 yml 私钥】(需 Jasypt 加密后填入)");
// System.out.println(privateKeyBase64);
// System.out.println();
//
// RSA rsa = new RSA(privateKeyBase64, publicKeyBase64);
// String testPlain = "szsf@zfjd";
// String encrypted = rsa.encryptBase64(testPlain, StandardCharsets.UTF_8, KeyType.PublicKey);
// String decrypted = rsa.decryptStr(encrypted, KeyType.PrivateKey, StandardCharsets.UTF_8);
//
// System.out.println("========== 验证 ==========");
// System.out.println("原文: " + testPlain);
// System.out.println("加密: " + encrypted);
// System.out.println("解密: " + decrypted);
// System.out.println("验证: " + testPlain.equals(decrypted));
//
// String JasyptUtilsencrypted = JasyptUtils.encryptWithMD5("MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALTSYWlcbT0MU4vQel54se6HpgYBri9AmisfzFXPh+282CRt5eyXbFnA1IBbmxxzlnkEUUWhnLbzTSLd+DjN52u5jaCiIbhqWDuFpEdO7gV9gk7L6j43/9SDKccH+ID7C/ycSEopGy5U/AP2k0rHb+fNc7oqNkQkKy9UlfnfD6lDAgMBAAECgYAd3qrsxrHc5c5fSD8OoA10g7/vOhPWBmvxN71/Z1ri8NEbo3PZ02G4qdvwoDFNT+LJduceA4ZpymMxoU1BxPG3WMXoWZQMSECEwi6ivg9q4HBr1mhhPPqgF5pDgGb8aW/3znOIlIV5WsZsb4pHd6NH38A7iv6IuKccWdstjtqCsQJBANq5GTDVVACe4DXAcvI+GtaRNM3izRJueYx6Kzhl22v2vMiGH8WcwgaEIlXg9G/6SrVnLh/hpTY/iEuTGaiBnTUCQQDTo6X1hZLNBYXP+ahEnGjVrzcO6GDklvU609tPcW1pVXHOeikQKUwwNKYJ6GrSW5ECewqdviOznI3ODBynTROXAkEAugGr8KGbPKPgXRX7KxOx00PNukHk0IXvDI5g7yeAQQKmbYnSv0Weo9f/MzWJ6yjaHAdRbH+C9u10xYCl023W+QJAYjaGVIrZFjWi5GG6GaTv7YHzLgLevBXl1ZftJU/A82nId4YvOiXACnrUNrLZp6cAg0MwKQXMsZRMJjturKDTHwJBAMDOLEBcnP2a0UVYXSwG3o3uVTBpLo1CvgN32aSF0xX7C+MuHTirDJStOLmNBGb+7TOINsnNHFVveXdhnDwrBTE=", "ATPfOhpnAVp6yBas7RU");
// System.out.println("ENC(" + JasyptUtilsencrypted + ")");
}
}

36
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/LoginController.java

@ -7,11 +7,10 @@ import com.zdxt.enforcementcode.common.commonenum.PlatformTypeEnums;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.encrypt.utils.EncryptUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.springframework.beans.factory.annotation.Autowired;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.Map;
@ -39,6 +38,9 @@ public abstract class LoginController {
*/
protected static final long APP_TOKEN_ACTIVE_TIMEOUT = 86400;
@Autowired
private com.zdxt.enforcementcode.common.config.RuoYiConfig ruoYiConfig;
/**
* 校验登录参数非空
*
@ -61,7 +63,7 @@ public abstract class LoginController {
*/
protected String decryptPassword(String secretKey) {
try {
return decryptByAes(secretKey);
return decryptByRsa(secretKey);
} catch (Exception e) {
log.error("密码解密失败", e);
return null;
@ -109,27 +111,11 @@ public abstract class LoginController {
}
/**
* AES/CBC/ZeroPadding 解密(与前端CryptoJS对应)
* 前端使用 CryptoJS.pad.ZeroPadding,Java中用NoPadding后手动去除尾部0字节
* RSA 私钥解密前端传来的密码
* 前端使用 RSA 公钥加密,后端使用私钥解密
*/
private String decryptByAes(String encryptedBase64) throws Exception {
byte[] keyBytes = AES_KEY.getBytes(StandardCharsets.UTF_8);
byte[] ivBytes = AES_KEY.getBytes(StandardCharsets.UTF_8);
SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivParameterSpec = new IvParameterSpec(ivBytes);
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
byte[] encrypted = Base64.getDecoder().decode(encryptedBase64);
byte[] decrypted = cipher.doFinal(encrypted);
// 去除ZeroPadding尾部的0字节
int len = decrypted.length;
while (len > 0 && decrypted[len - 1] == 0) {
len--;
}
return new String(decrypted, 0, len, StandardCharsets.UTF_8);
private String decryptByRsa(String encryptedBase64) throws Exception {
String privateKey = ruoYiConfig.getPrivateKey();
return EncryptUtils.decryptByRsa(encryptedBase64, privateKey);
}
}

4
zdxt-web-client/zdxt-admin-plus-ui/.env.development

@ -25,9 +25,9 @@ VITE_APP_PORT = 12004
# 接口加密功能开关(如需关闭 后端也必须对应关闭)
VITE_APP_ENCRYPT = true
# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'
# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE='
VITE_APP_RSA_PRIVATE_KEY = '替换为与新公钥配对的私钥'
# 客户端id
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e'

4
zdxt-web-client/zdxt-admin-plus-ui/.env.development-wmy-cust

@ -27,9 +27,9 @@ VITE_APP_PORT = 12004
# 接口加密功能开关(如需关闭 后端也必须对应关闭)
VITE_APP_ENCRYPT = true
# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'
# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE='
VITE_APP_RSA_PRIVATE_KEY = '替换为与新公钥配对的私钥'
# 客户端id
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e'

4
zdxt-web-client/zdxt-admin-plus-ui/.env.development-zrb-cust

@ -23,9 +23,9 @@ VITE_APP_PORT = 12004
# 接口加密功能开关(如需关闭 后端也必须对应关闭)
VITE_APP_ENCRYPT = true
# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'
# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE='
VITE_APP_RSA_PRIVATE_KEY = '替换为与新公钥配对的私钥'
# 客户端id
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e'

4
zdxt-web-client/zdxt-admin-plus-ui/.env.production

@ -27,9 +27,9 @@ VITE_APP_PORT = 80
# 接口加密功能开关(如需关闭 后端也必须对应关闭)
VITE_APP_ENCRYPT = true
# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'
# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE='
VITE_APP_RSA_PRIVATE_KEY = '替换为与新公钥配对的私钥'
# 客户端id
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e'

16
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/login.vue

@ -41,7 +41,7 @@
<script setup>
import {reactive, ref} from 'vue';
import {enforcementLogin} from '../../api/enforcement';
import CryptoJS from "crypto-js";
import JSEncrypt from 'jsencrypt';
import {showFailToast} from 'vant';
import 'vant/es/toast/style';
@ -144,17 +144,9 @@ const onSubmit = async () => {
};
const Encrypt = (passWord) => {
var keyStr = '1234567898745621';
var ivStr = keyStr;
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(ivStr);
var srcs = CryptoJS.enc.Utf8.parse(passWord);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
const encryptor = new JSEncrypt();
encryptor.setPublicKey(import.meta.env.VITE_APP_RSA_PUBLIC_KEY);
return encryptor.encrypt(passWord);
}
</script>

16
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/loginByPassword.vue

@ -63,7 +63,7 @@
<script setup>
import {reactive, ref, onMounted} from 'vue';
import {enforcementLogin, enforcementLoginByPassword} from '../../api/enforcement';
import CryptoJS from "crypto-js";
import JSEncrypt from 'jsencrypt';
import {showFailToast} from 'vant';
import 'vant/es/toast/style';
@ -161,17 +161,9 @@ onMounted(() => {
});
const Encrypt = (passWord) => {
var keyStr = '1234567898745621';
var ivStr = keyStr;
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(ivStr);
var srcs = CryptoJS.enc.Utf8.parse(passWord);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
const encryptor = new JSEncrypt();
encryptor.setPublicKey(import.meta.env.VITE_APP_RSA_PUBLIC_KEY);
return encryptor.encrypt(passWord);
}
</script>

16
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/loginByV1System.vue

@ -63,7 +63,7 @@
<script setup>
import {reactive, ref, onMounted} from 'vue';
import {enforcementLogin, enforcementLoginByPassword} from '../../api/enforcement';
import CryptoJS from "crypto-js";
import JSEncrypt from 'jsencrypt';
import {showFailToast} from 'vant';
import 'vant/es/toast/style';
@ -156,17 +156,9 @@ onMounted(() => {
});
const Encrypt = (passWord) => {
var keyStr = '1234567898745621';
var ivStr = keyStr;
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(ivStr);
var srcs = CryptoJS.enc.Utf8.parse(passWord);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
const encryptor = new JSEncrypt();
encryptor.setPublicKey(import.meta.env.VITE_APP_RSA_PUBLIC_KEY);
return encryptor.encrypt(passWord);
}
</script>

1
zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-dev

@ -8,3 +8,4 @@ VITE_PROXY_TARGET = 'http://localhost:8080'
VITE_CONTEXT_PATH = '/efcode20-enf-app/'
VITE_DEFAULT_LOGIN = '/enforcement/login'
VITE_APP_ENV = 'dev'
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

1
zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-dev-wmy

@ -10,3 +10,4 @@ VITE_PROXY_TARGET = 'http://172.16.21.213:8080'
VITE_DEFAULT_LOGIN = '/enforcement/loginByPassword'
VITE_APP_ENV = 'dev'
VITE_FILE_URL = ''
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

1
zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-dev-zrb

@ -6,3 +6,4 @@ VITE_PROXY_TARGET = 'http://localhost:17000'
VITE_DEFAULT_LOGIN = '/enforcement/loginByPassword'
VITE_APP_ENV = 'dev'
VITE_FILE_URL = ''
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

1
zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-prod

@ -6,3 +6,4 @@ VITE_CONTEXT_PATH = '/efcode20-enf-app/'
VITE_DEFAULT_LOGIN = '/enforcement/loginByPassword'
VITE_APP_ENV = 'prod'
VITE_FILE_URL = ''
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

1
zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-test

@ -6,3 +6,4 @@ VITE_PROXY_TARGET = 'http://139.186.148.21:8080'
VITE_CONTEXT_PATH = '/efcode20-enf-app/'
VITE_DEFAULT_LOGIN = '/enforcement/login'
VITE_APP_ENV = 'dev'
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

16
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/auth/login.vue

@ -39,7 +39,7 @@
<script setup>
import {reactive, ref} from 'vue';
import {enterpriseLogin, getUserRefEnterpriseInfo} from '../../../api/enterprise';
import CryptoJS from "crypto-js";
import JSEncrypt from 'jsencrypt';
import {showFailToast, showToast} from 'vant';
import 'vant/es/toast/style';
@ -101,17 +101,9 @@
};
const Encrypt = (passWord) => {
var keyStr = '1234567898745621';
var ivStr = keyStr;
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(ivStr);
var srcs = CryptoJS.enc.Utf8.parse(passWord);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
const encryptor = new JSEncrypt();
encryptor.setPublicKey(import.meta.env.VITE_APP_RSA_PUBLIC_KEY);
return encryptor.encrypt(passWord);
}
</script>

16
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/auth/loginByPassword.vue

@ -38,7 +38,7 @@
<script setup>
import {reactive, ref} from 'vue';
import {enterpriseLogin, enterpriseLoginByPassword, getUserRefEnterpriseInfo} from '../../../api/enterprise';
import CryptoJS from "crypto-js";
import JSEncrypt from 'jsencrypt';
import {showFailToast, showToast} from 'vant';
import 'vant/es/toast/style';
@ -106,17 +106,9 @@
};
const Encrypt = (passWord) => {
var keyStr = '1234567898745621';
var ivStr = keyStr;
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(ivStr);
var srcs = CryptoJS.enc.Utf8.parse(passWord);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
const encryptor = new JSEncrypt();
encryptor.setPublicKey(import.meta.env.VITE_APP_RSA_PUBLIC_KEY);
return encryptor.encrypt(passWord);
}
</script>

16
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/login.vue

@ -39,7 +39,7 @@
<script setup>
import {reactive, ref} from 'vue';
import {enterpriseLogin, getUserRefEnterpriseInfo} from '../../../api/enterprise';
import CryptoJS from "crypto-js";
import JSEncrypt from 'jsencrypt';
import {showFailToast, showToast} from 'vant';
import 'vant/es/toast/style';
@ -102,17 +102,9 @@
};
const Encrypt = (passWord) => {
var keyStr = '1234567898745621';
var ivStr = keyStr;
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(ivStr);
var srcs = CryptoJS.enc.Utf8.parse(passWord);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
const encryptor = new JSEncrypt();
encryptor.setPublicKey(import.meta.env.VITE_APP_RSA_PUBLIC_KEY);
return encryptor.encrypt(passWord);
}
</script>

1
zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-dev

@ -8,3 +8,4 @@ VITE_FILE_URL = 'http://139.186.148.21:8080'
VITE_CONTEXT_PATH = '/efcode20-ent-app/'
VITE_DEFAULT_LOGIN = '/enterprise/enterpriseHome'
VITE_APP_ENV = 'dev'
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

1
zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-dev-wmy

@ -8,3 +8,4 @@ VITE_CONTEXT_PATH = '/efcode20-ent-app/'
VITE_DEFAULT_LOGIN = '/enterprise/loginByPassword'
VITE_FILE_URL = ''
VITE_APP_ENV = 'dev'
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

1
zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-dev-zrb

@ -6,3 +6,4 @@ VITE_CONTEXT_PATH = '/efcode20-ent-app/'
VITE_DEFAULT_LOGIN = '/enterprise/loginByPassword'
VITE_FILE_URL = ''
VITE_APP_ENV = 'dev'
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

1
zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-prod

@ -6,3 +6,4 @@ VITE_CONTEXT_PATH = '/efcode20-ent-app/'
VITE_DEFAULT_LOGIN = '/enterprise/loginByPassword'
VITE_APP_ENV = 'prod'
VITE_FILE_URL = ''
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

16
zdxt-web-client/zdxt-efcode-supervision-app/src/views/supervision/login.vue

@ -38,7 +38,7 @@
<script setup>
import {reactive, ref} from 'vue';
import {supervisionLogin} from '../../api/supervision';
import CryptoJS from "crypto-js";
import JSEncrypt from 'jsencrypt';
import {showFailToast} from 'vant';
import 'vant/es/toast/style';
@ -84,17 +84,9 @@
};
const Encrypt = (passWord) => {
var keyStr = '1234567898745621';
var ivStr = keyStr;
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(ivStr);
var srcs = CryptoJS.enc.Utf8.parse(passWord);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
const encryptor = new JSEncrypt();
encryptor.setPublicKey(import.meta.env.VITE_APP_RSA_PUBLIC_KEY);
return encryptor.encrypt(passWord);
}
</script>

1
zdxt-web-client/zdxt-efcode-supervision-app/vite-env/.env.supervision-dev

@ -3,3 +3,4 @@ VITE_PORT = 12002
VITE_BASE_URL = '/api/sup-ep'
VITE_DEFAULT_LOGIN = '/supervision/login'
VITE_APP_ENV = 'dev'
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

1
zdxt-web-client/zdxt-efcode-supervision-app/vite-env/.env.supervision-prod

@ -3,3 +3,4 @@ VITE_PORT = 12002
VITE_BASE_URL = '/api/sup-ep'
VITE_DEFAULT_LOGIN = '/supervision/login'
VITE_APP_ENV = 'prod'
VITE_APP_RSA_PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB'

6
zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-dev.yml

@ -7,7 +7,11 @@ zdxt:
url-prefix: /profile
qr_code_url: /usr/local/uploads/zfjd_logo.png
demo_enabled: false
# 登录使用的公私钥
public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB
private-key: ENC(q/G0Iy/bTMpmx7MUmBo/Vr8J1lOXdh9aspSxPt+hAE7YrFmqGUUims4f3eJPMk/Ppc3Np+FcqISI82w2enkvImCfYo+FEYkuNNq2jpE7qMnti4yGAVhnuhrNrtNja2g3GJZ71SfoTsT9jQTLGh92wSSvqxl6OaOfb0hZB4P4cWHpEyH54UcXOaSX+Qa/IfouY60RwWJM61AQwZuyJ91U98ad7diiCso82AnBvMDQueSDM86C/lmvtiwKCKb4dfB5MRkSykFKANT0Mixu8qIr49CIpkusFfPdzbPyC3jgVyLZ5LnK1/6aDXCxj5Yulwic20EyFiAksKpMt+tF/pSAgy0QznvG4TpMH9XbsTqEmFfQWEHj7DkxCPf8u/1sl8xi3qcCKOeBX5w3t+/Ybhoje8fRPjJKTmooaU2gjxZHo3ozbUT1mX3VVfYUc6b6OjhwPUz88LhY9jEUVVUYzYVh9ENA/Ynp61ELArT+91ccqoHitSJBw/BMgBxcOD3+8v3SC1dpH/gtE5a4VuQetz/gWuLYHBdYaZZ9uzMZHySHYo1q2XmG2sTSG/A/U/KgatdOWwaV5DaSw74YOpelQjb2CUoqurVoQOMW1VZt/L3x1NDeZTUyNWsaNGyteW2beGTGf3BvTZeGG+/QJhGbX4CxigGpL+nFaCGOf8nwG21LaYHKtyQrC1o3YUApkMqZqSbWCB2FiR4sBE5bf3jJxJn9BK0Noa/Zp6anemSfoOgCB0igBBIfJqi52WMW4yChqslcByxFCYnayf02uM/l2jhfN3XEKS3uc1F+AkhoNleNBepFsJTviVYb2n/anWZZPRPGvbkBNV8NznCFSzdMx+bAql3noDcaTG8TV4eGWTaNFGS+ap+iCG/CdlhbrjR0RknxPSjkWAnzz2FE/a/n89aOVBYcU8LlGuRGT2ppf/wWrlFADWk7SfnpWyJyZdQT+iGZSaUCwQ2hVRYL43Fet6IBrDuqzb6oZEhONx4h2qEhhLEcerIuHAeU4COTUN6dqqxsc3a/5IPzAoyIg2Y6Rem7x2Hp9l2/xJtK1IPOayLX/XTPK4OIBzC/IMq3/nA+CtjJTXpuhceRkw6CbqVYV//JOQyGO9Bloyf+7FOdmuU6UMMTxiEgHROMW26nlETmr6+m)
# private-key: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALTSYWlcbT0MU4vQel54se6HpgYBri9AmisfzFXPh+282CRt5eyXbFnA1IBbmxxzlnkEUUWhnLbzTSLd+DjN52u5jaCiIbhqWDuFpEdO7gV9gk7L6j43/9SDKccH+ID7C/ycSEopGy5U/AP2k0rHb+fNc7oqNkQkKy9UlfnfD6lDAgMBAAECgYAd3qrsxrHc5c5fSD8OoA10g7/vOhPWBmvxN71/Z1ri8NEbo3PZ02G4qdvwoDFNT+LJduceA4ZpymMxoU1BxPG3WMXoWZQMSECEwi6ivg9q4HBr1mhhPPqgF5pDgGb8aW/3znOIlIV5WsZsb4pHd6NH38A7iv6IuKccWdstjtqCsQJBANq5GTDVVACe4DXAcvI+GtaRNM3izRJueYx6Kzhl22v2vMiGH8WcwgaEIlXg9G/6SrVnLh/hpTY/iEuTGaiBnTUCQQDTo6X1hZLNBYXP+ahEnGjVrzcO6GDklvU609tPcW1pVXHOeikQKUwwNKYJ6GrSW5ECewqdviOznI3ODBynTROXAkEAugGr8KGbPKPgXRX7KxOx00PNukHk0IXvDI5g7yeAQQKmbYnSv0Weo9f/MzWJ6yjaHAdRbH+C9u10xYCl023W+QJAYjaGVIrZFjWi5GG6GaTv7YHzLgLevBXl1ZftJU/A82nId4YvOiXACnrUNrLZp6cAg0MwKQXMsZRMJjturKDTHwJBAMDOLEBcnP2a0UVYXSwG3o3uVTBpLo1CvgN32aSF0xX7C+MuHTirDJStOLmNBGb+7TOINsnNHFVveXdhnDwrBTE=
# private-key: ENC(Jasypt加密后的私钥Base64)
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关

2
zdxt-web-server/zdxt-admin-web-server/src/main/resources/application-prod.yml

@ -6,6 +6,8 @@ zdxt:
# upload-path: /Users/vincent/uploadPath
url-prefix: /profile
demo_enabled: false
public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC00mFpXG09DFOL0HpeeLHuh6YGAa4vQJorH8xVz4ftvNgkbeXsl2xZwNSAW5scc5Z5BFFFoZy2800i3fg4zedruY2goiG4alg7haRHTu4FfYJOy+o+N//UgynHB/iA+wv8nEhKKRsuVPwD9pNKx2/nzXO6KjZEJCsvVJX53w+pQwIDAQAB
private-key: ENC(q/G0Iy/bTMpmx7MUmBo/Vr8J1lOXdh9aspSxPt+hAE7YrFmqGUUims4f3eJPMk/Ppc3Np+FcqISI82w2enkvImCfYo+FEYkuNNq2jpE7qMnti4yGAVhnuhrNrtNja2g3GJZ71SfoTsT9jQTLGh92wSSvqxl6OaOfb0hZB4P4cWHpEyH54UcXOaSX+Qa/IfouY60RwWJM61AQwZuyJ91U98ad7diiCso82AnBvMDQueSDM86C/lmvtiwKCKb4dfB5MRkSykFKANT0Mixu8qIr49CIpkusFfPdzbPyC3jgVyLZ5LnK1/6aDXCxj5Yulwic20EyFiAksKpMt+tF/pSAgy0QznvG4TpMH9XbsTqEmFfQWEHj7DkxCPf8u/1sl8xi3qcCKOeBX5w3t+/Ybhoje8fRPjJKTmooaU2gjxZHo3ozbUT1mX3VVfYUc6b6OjhwPUz88LhY9jEUVVUYzYVh9ENA/Ynp61ELArT+91ccqoHitSJBw/BMgBxcOD3+8v3SC1dpH/gtE5a4VuQetz/gWuLYHBdYaZZ9uzMZHySHYo1q2XmG2sTSG/A/U/KgatdOWwaV5DaSw74YOpelQjb2CUoqurVoQOMW1VZt/L3x1NDeZTUyNWsaNGyteW2beGTGf3BvTZeGG+/QJhGbX4CxigGpL+nFaCGOf8nwG21LaYHKtyQrC1o3YUApkMqZqSbWCB2FiR4sBE5bf3jJxJn9BK0Noa/Zp6anemSfoOgCB0igBBIfJqi52WMW4yChqslcByxFCYnayf02uM/l2jhfN3XEKS3uc1F+AkhoNleNBepFsJTviVYb2n/anWZZPRPGvbkBNV8NznCFSzdMx+bAql3noDcaTG8TV4eGWTaNFGS+ap+iCG/CdlhbrjR0RknxPSjkWAnzz2FE/a/n89aOVBYcU8LlGuRGT2ppf/wWrlFADWk7SfnpWyJyZdQT+iGZSaUCwQ2hVRYL43Fet6IBrDuqzb6oZEhONx4h2qEhhLEcerIuHAeU4COTUN6dqqxsc3a/5IPzAoyIg2Y6Rem7x2Hp9l2/xJtK1IPOayLX/XTPK4OIBzC/IMq3/nA+CtjJTXpuhceRkw6CbqVYV//JOQyGO9Bloyf+7FOdmuU6UMMTxiEgHROMW26nlETmr6+m)
--- # snail-job 配置
snail-job:

Loading…
Cancel
Save