lsw 10 months ago
parent
commit
eb77b8c01e

+ 0 - 4
admin-ui/src/utils/jsencrypt.js

@@ -1,10 +1,6 @@
 import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
-
 // 密钥对生成 http://web.chacuo.net/netrsakeypair
-
 const publicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuV25rGdxcvQTOurqf66AgTUsDR4ohE34tPhB2B8NVkFoYD4+LtC0Efknz7AvAXX0OkyYp6PgsrapBS3X+T76KK+FTCMrUf01SJvJIm16bno6nInK5LeA+ujtghzC8yQ8w7DuP3xf8m5+UoZ21xLmq/9qHCIzQCKfZKnmyV6H57br+P9MJmVq8G8Tynu7Q26DC9UWAhSWmpsygga5jO2uY3uvAvu2BPnze/xDECEf3Uqs3Mf0Pqg8g7NtpPsGmT4y/14hg0k8Z1AY+QPjzXqN3ikA61ZEGuoGcZ33tTAZ/I27vJI40oOTY9yw2DlxrpNW8naREeo5F/ANagsNtDjuBwIDAQAB'
-
-
 // 加密
 export function encrypt(txt) {
   const encryptor = new JSEncrypt()

+ 64 - 64
admin-ui/src/views/work/company/edit.vue

@@ -64,12 +64,12 @@
           <ImageUpload v-model="form.b1" :isShowTip="false" :limit="1" :read="param.detail"></ImageUpload>
         </el-form-item>
       </div>
-      <div class="bos" v-if="param.detail">
+      <div class="bos" v-if="param.detail || !form.id">
         <div class="lab">
           <div class="bsg"></div>
           <div class="tit">
             <span>平台登录账号</span>
-            <span class="jz">管理员</span>
+            <span class="jz">企业管理员</span>
           </div>
         </div>
         <el-row>
@@ -80,7 +80,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="登录密码" prop="password">
-              <el-input type="password" v-model="form.password" placeholder="默认123456" auto-complete="password" show-password />
+              <el-input v-model="form.password" placeholder="默认123456" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -94,70 +94,70 @@
 </template>
 
 <script>
-  export default {
-    data() {
-      return {
-        form: { password: 123456 },
-        rules: {
-          companyName: [{ required: true, message: '不能为空', trigger: 'blur' }],
-          email: [{ required: true, message: '不能为空', trigger: 'blur' }],
-          director: [{ required: true, message: '不能为空', trigger: 'blur' }],
-          phone: [
-            { required: true, message: '不能为空', trigger: 'blur' },
-            {
-              pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-              message: '请输入正确的手机号码',
-              trigger: 'blur'
-            }
-          ],
-          address: [{ required: true, message: '不能为空', trigger: 'blur' }],
-          business: [{ required: true, message: '不能为空', trigger: 'blur' }],
-          bankName: [{ required: true, message: '不能为空', trigger: 'blur' }],
-          bankAccount: [{ required: true, message: '不能为空', trigger: 'blur' }],
-          b1: [{ required: true, message: '不能为空', trigger: 'blur' }],
-          userName: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
-          password: [{ required: true, message: '密码不能为空', trigger: 'blur' }]
-        }
-      };
-    },
-    props: {
-      param: {
-        type: Object,
-        default: () => {
-          return {};
-        }
-      },
-      layerid: {
-        type: String
+export default {
+  data() {
+    return {
+      form: { password: 123456 },
+      rules: {
+        companyName: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        email: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        director: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        phone: [
+          { required: true, message: '不能为空', trigger: 'blur' },
+          {
+            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+            message: '请输入正确的手机号码',
+            trigger: 'blur'
+          }
+        ],
+        address: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        business: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        bankName: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        bankAccount: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        b1: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        userName: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
+        password: [{ required: true, message: '密码不能为空', trigger: 'blur' }]
       }
-    },
-    mounted() {
-      if (this.param.id) {
-        this.ajax({ url: '/work/company/detail/' + this.param.id }).then((response) => {
-          this.form = response.data;
-        });
+    };
+  },
+  props: {
+    param: {
+      type: Object,
+      default: () => {
+        return {};
       }
     },
-    methods: {
-      submitForm() {
-        this.$refs['form'].validate((valid) => {
-          if (valid) {
-            if (this.form.id) {
-              this.ajax({ method: 'post', url: '/work/company/edit', data: this.form }).then((response) => {
-                this.$modal.msgSuccess('修改成功');
-                this.$layer.close(this.layerid);
-                this.$parent.getList();
-              });
-            } else {
-              this.ajax({ method: 'post', url: '/work/company/add', data: this.form }).then((response) => {
-                this.$modal.msgSuccess('新增成功');
-                this.$layer.close(this.layerid);
-                this.$parent.getList();
-              });
-            }
+    layerid: {
+      type: String
+    }
+  },
+  mounted() {
+    if (this.param.id) {
+      this.ajax({ url: '/work/company/detail/' + this.param.id }).then((response) => {
+        this.form = response.data;
+      });
+    }
+  },
+  methods: {
+    submitForm() {
+      this.$refs['form'].validate((valid) => {
+        if (valid) {
+          if (this.form.id) {
+            this.ajax({ method: 'post', url: '/work/company/edit', data: this.form }).then((response) => {
+              this.$modal.msgSuccess('修改成功');
+              this.$layer.close(this.layerid);
+              this.$parent.getList();
+            });
+          } else {
+            this.ajax({ method: 'post', url: '/work/company/add', data: this.form }).then((response) => {
+              this.$modal.msgSuccess('新增成功');
+              this.$layer.close(this.layerid);
+              this.$parent.getList();
+            });
           }
-        });
-      }
+        }
+      });
     }
-  };
+  }
+};
 </script>

+ 57 - 0
ruoyi-admin/src/test/java/com/ruoyi/user.java

@@ -16,6 +16,11 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.crypto.Cipher;
+import java.security.*;
+import java.security.spec.InvalidKeySpecException;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.util.Base64;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -86,4 +91,56 @@ public class user {
             e.printStackTrace();
         }
     }
+
+    public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeySpecException {
+        // 初始化密钥生成器
+        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
+        // 设置密钥长度,可以根据需要调整
+        keyGen.initialize(2048);
+
+        // 生成密钥对
+        KeyPair pair = keyGen.genKeyPair();
+        PrivateKey privateKey = pair.getPrivate();
+        PublicKey publicKey = pair.getPublic();
+
+        // 将私钥转换为Base64编码的字符串
+        String privateKeyString = Base64.getEncoder().encodeToString(privateKey.getEncoded());
+        System.out.println("Private Key (Base64):");
+        System.out.println(privateKeyString);
+
+        // 将公钥转换为Base64编码的字符串
+        String publicKeyString = Base64.getEncoder().encodeToString(publicKey.getEncoded());
+        System.out.println("Public Key (Base64):");
+        System.out.println(publicKeyString);
+    }
+    public static String generatePrivateKeyAsString() throws NoSuchAlgorithmException, InvalidKeySpecException {
+        // 初始化密钥生成器
+        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
+        keyGen.initialize(2048); // 可以根据需要调整密钥长度
+
+        // 生成密钥对
+        KeyPair pair = keyGen.genKeyPair();
+        PrivateKey privateKey = pair.getPrivate();
+
+        // 将私钥转换为PKCS#8编码的字节数组
+        PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(privateKey.getEncoded());
+        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+        PrivateKey pkcs8PrivateKey = keyFactory.generatePrivate(pkcs8KeySpec);
+
+        // 将私钥编码为Base64字符串
+        byte[] encoded = pkcs8PrivateKey.getEncoded();
+        String base64EncodedPrivateKey = Base64.getEncoder().encodeToString(encoded);
+
+        return base64EncodedPrivateKey;
+    }
+
+    public static String decryptByPrivateKey(String privateKeyString, String text) throws Exception {
+        PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKeyString));
+        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+        PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);
+        Cipher cipher = Cipher.getInstance("RSA"); // 通常需要指定填充模式,如 "RSA/ECB/PKCS1Padding"
+        cipher.init(Cipher.DECRYPT_MODE, privateKey);
+        byte[] result = cipher.doFinal(Base64.getDecoder().decode(text));
+        return new String(result); // 注意:这里假设密文是文本且使用UTF-8编码,如果不是,需要相应地处理
+    }
 }