Helius
2021-08-05 fdb91cc72f7cbe8c095a1ce6442c9259ff01ff06
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package com.xzx.gc.common.utils;
 
 
import cn.hutool.core.util.RandomUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.crypto.digest.MD5;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;
import com.xzx.gc.common.constant.Constants;
import com.xzx.gc.util.MD5Util;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
 
@UtilityClass
@Slf4j
public class SecurityUtil {
 
    /**
     * AES对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。
     * 默认使用 :AES/ECB/PKCS5Padding
     * @param salt 必须是16位的
     * @param content  明文内容
     * @return 加密后的密码
     */
    public String encrypt(String salt,String content){
        //构建
        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, salt.getBytes());
        //加密
        String encrypt = aes.encryptBase64(content);
        return encrypt;
    }
 
 
    /**
     *AES 解密
     * @param salt  盐
     * @param content  加密的内容
     * @return
     */
    public String decrypt(String salt,String content){
        try {
            SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, salt.getBytes());
            return aes.decryptStr(content);
        } catch (Exception e) {
           log.warn("解密失败:"+content);
        }
        return null;
    }
 
 
 
    /** RSA私钥加密
     * 此算法用了默认补位方式为RSA/ECB/PKCS1Padding
     * @param content 加密内容
     */
    public String encrypt(String content){
        RSA rsa = new RSA(Constants.RSA_PRIVATE_SECRET,null);
        String encrypt = rsa.encryptBase64(content, KeyType.PrivateKey);
        return encrypt;
    }
 
 
    /** RSA私钥解密
     * 此算法用了默认补位方式为RSA/ECB/PKCS1Padding
     * @param content 加密内容
     */
    public String decrypt(String content){
        RSA rsa = new RSA(Constants.RSA_PRIVATE_SECRET,null);
        String decrypt = rsa.decryptStr(content, KeyType.PrivateKey);
        return decrypt;
    }
 
    /**
     * rsa解密获取aes秘钥再aes解密
     * @param key
     * @param content
     * @return
     */
    public String decryptRsaAndAes(String key,String content){
        RSA rsa = new RSA(Constants.RSA_PRIVATE_SECRET,null);
        String decrypt = rsa.decryptStr(key, KeyType.PrivateKey);
        String decrypt1 = decrypt(decrypt, content);
        return decrypt1;
    }
 
 
    /**
     * rsa解密在aes加密
     * @param key
     * @param content
     * @return
     */
    public String encryptRsaAndAes(String key,String content){
        RSA rsa = new RSA(Constants.RSA_PRIVATE_SECRET,null);
        String decrypt = rsa.decryptStr(key, KeyType.PrivateKey);
        String decrypt1 = encrypt(decrypt, content);
        return decrypt1;
    }
 
    public static void main(String[] args) {
 
//        String s= RandomUtil.randomString(16);
//        System.out.println(s);
//        String encrypt = SecurityUtil.encrypt(Constants.PWD_DECRET, "123456");
//        System.out.println(encrypt);
//        String decrypt = SecurityUtil.decrypt("00h03FS62fp8M2aB", "N8HyB9al97EwglufJRMAaQ==");
//        System.out.println(decrypt);
//  String extra = commonDto.getExtra();
//            extra = StrUtil.removePrefix(extra, ",");
//            String decrypt = SecurityUtil.decrypt(Constants.PWD_DECRET, extra);
//        String decrypt = SecurityUtil.decrypt(Constants.PWD_DECRET, "2H4ogswi8lD/sBVq6JzcsWp1Vluj3LtWbnX9TMkbnrBmmrObGni/nQC54sQyoykKWuciPhE2nmStLOXfu9+HSSz5ef5ajHHyrHdOtx/z+MNVjX+uJEAIOTlsgw81tO7eRtXPgANPcAJimwfDpIPuBQ==");
//        System.out.println(decrypt);
 
//        String decrypt = SecurityUtil.decrypt("RzqwBtGG9ZOJn3o4", "4PkjauEZjGUs8BxlYFBUjMw6mHNmpqxTL40JIkUXiEc=");
//        System.out.println(decrypt);
 
//        String decrypt = SecurityUtil.decrypt(Constants.PWD_DECRET, "4BF4E3B0A15961E715EC60AD9336D3A2");
//        System.out.println(decrypt);
 
//        MD5.create().
 
//        String decrypt = SecurityUtil.decrypt("7864bL9Z4t9c4c67", "N/1oNOsbGVsdEDaQO55Lp7j2alng4VgHX89zl6uVhJ0OD6tsljQZUoxVpRUTVC8v");
//        System.out.println(decrypt);
 
        String decrypt = SecurityUtil.decrypt("9dg220xrdaqoduck", "CQdAYNgxGyJw0f3DuyCvMQ==");
        System.out.println(decrypt);
 
//        String encrypt = SecurityUtil.encrypt(Constants.PWD_DECRET, "888888");
//        System.out.println(encrypt);
//
//         encrypt = SecurityUtil.encrypt(Constants.PWD_DECRET, "123456");
//        System.out.println(encrypt);
    }
 
}