1
zj
2025-08-08 5d232fcbf3799d5b8cdd6c1b1db52231dd493713
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.nq.utils;
 
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.AES;
 
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
 
/**
 * @ClassName : SymmetricCryptoUtil  //类名
 * @Description :   //描述
 * @Author :  tf //作者
 * @Date: 2022/10/23  23:31
 */
 
    public class SymmetricCryptoUtil {
        /**
         * 16字节
         */
        private static final String ENCODE_KEY = PropertiesUtil.getProperty("user.password");
        private static final String IV_KEY = "0000000000000000";
 
        public static void main(String[] args) {
            String encryptData = encryptFromString("zdm321123.", Mode.CBC, Padding.ZeroPadding);
            System.out.println("加密:" + encryptData);
            String decryptData = decryptFromString("MXvZr8iRBQUQFShywDjmpw==", Mode.CBC, Padding.ZeroPadding);
            System.out.println("解密:" + decryptData);
        }
 
        public static String encryptFromString(String data, Mode mode, Padding padding) {
            AES aes;
            if (Mode.CBC == mode) {
                aes = new AES(mode, padding,
                        new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"),
                        new IvParameterSpec(IV_KEY.getBytes()));
            } else {
                aes = new AES(mode, padding,
                        new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"));
            }
            return aes.encryptBase64(data, StandardCharsets.UTF_8);
        }
 
        public static String decryptFromString(String data, Mode mode, Padding padding) {
            AES aes;
            if (Mode.CBC == mode) {
                aes = new AES(mode, padding,
                        new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"),
                        new IvParameterSpec(IV_KEY.getBytes()));
            } else {
                aes = new AES(mode, padding,
                        new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"));
            }
            byte[] decryptDataBase64 = aes.decrypt(data);
            return new String(decryptDataBase64, StandardCharsets.UTF_8);
        }
    /**
    * @Description:  加密密码
    * @Param:  password
    * @return:  encryptFromString
    * @Author: tf
    * @Date: 2022/10/23
    */
    public static String encryptPassword(String password){
        return encryptFromString(password, Mode.CBC, Padding.ZeroPadding);
    }
 
    /**
    * @Description:  解密密码
    * @Param:  password
    * @return:  decryptFromString
    * @Author: tf
    * @Date: 2022/10/23
    */
    public static String decryptPassword(String password){
        return decryptFromString(password, Mode.CBC, Padding.ZeroPadding);
    }
}