whyclxw
2024-08-13 c18c0d82e11e64147ad8d57da3444ab87da0eb4d
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
package com.whyc.util;
 
 
import lombok.extern.slf4j.Slf4j;
import org.jasypt.properties.PropertyValueEncryptionUtils;
import org.jasypt.util.text.BasicTextEncryptor;
 
import java.util.Objects;
 
@Slf4j
public final class JasyptUtils {
 
    public static void main(String[] args) {
        //String a = encrypt("MIIG/wIBADANBgkqhkiG9w0BAQEFAASCBukwggblAgEAAoIBgQCvqdAzpYQz/+BurudULNauEBd1l6x+jpoft8ualhoccZyPS5Ln+T9mFVRpM9O3R6feB14jhjuLQh7uV9f8QJTGepxBrAm3USnNFuaxVepoYcYUh1laAxz9qAvZsdjeWbjhHThAJ1o6reBLm6SnAD7KkPFiby2gmC+DHCiJLUGXO8ebSaV6618dadYhKyQzxy1zz6u3ay8ytZ6BAKUNx3msLr4onjppYcJjED5PGWZO3deGohNZ7KuWXSdKQ0Lun0CtAHcCpGQEnPnOFgnwDtsR87GXvxofhlnEJiqioowG6B2MgcTXRpVTkr1I3WJgNsdLpx0TT3WjWCm6HOyEoUUIvmv9Hyx9cPpN/hLJIh5NDaiFrvr+Z2gQpZcaxFUg3EkKCV1LSyTtqOJ9xR6D6Jp515D67B/CFZ/tnkCQQZv51kslEZ1Bc/Ubp2pQZcXP7aIZ+bxcoirZsW4NYGNgOZ2rPho3Tf2R2HxF77DBM/ziFe9u5K8NKvw+OITiZEmvtRMCAwEAAQKCAYA9KoAYu7WA9cQMRlK+eK54BZplk964YqdADBuVRFbrOJQvQT1yENQGk77Eswsxcn39Tct1yzPIlcl3bJcEeuhTBDaMl376mgRYKXVCoovwtLroQwjV0uexW2Zk8wx0wAEkQaxoiktcy1aifRukGu3CUx36DIRyuwswOAnVWjDQnDww0kAQwQxpjYTGH+OHM/+bp+A/Cc9xdNQwTy0p0x+G2O/V7OKh9yxcmjdYC5wYMh7t/lmGomZNATrBHRKdTE4AkWW3dEbYTCtACLOV3YGOmGQILHRaNNhUblUJ1Icw7+OwvU7bbF/3CrsYmhVkivJhUIxVQHoQL5FT/jvex0tec46ftea9waCGjqKyCqapUnH+/HaOFYyxYaMDsfQsi5++8ariak99fihRUTiGtiJblQCIcCbjaSZIFMF4mpO+wsQNPFzga6z2gq1+ryFLPn0egihzQEnI6F+d+Vb17b9TcsZb/crIE+NPZR5O8ICkJpdTq07ZY+1kPFh/imd3HgECgcEA6YJYa3owdju6CA7iA1szp8Ls70C5Vuc1TO369KyXCPYhnXZwCXp1wyJvRXOU8apPzfWSc4qKc4plIIciD2NhGqaI8RJLdHa0iiRMw9hA53GFHHRBzvjlCt/lghZVEQmIwDgsV0mKNZRB67ROc9WSdvLFEMMvje+l48+fHEzUD1MRG32cRBD3w3vLm/5SyU4J4WRt3ihBL65lSsaimVbCkOUQZOHBzVMfKzHoirTTr9TiTXTvDjfpdMNlVBvK9B/BAoHBAMCVKJZsrWE0M6fUOr4RCn46EoGg1aXU6qeyfkuJcVz/FHjh9oSHS4vU10l91pnv31LxECVNS5D68CGwiWGBzcnCH2jL9x3LZku8O6t7k33UMTdCHDD0yQlKg1zDc3JpS+dwmqw9tnPmbsR8Tr1jefghpJcAseFQAO9Xyi6r/j3+MRuRSazVZmmKTT69hA0K7TL7cvW9etCIkfSIjmSPyDKwsyQt9q/wb/WJcO80/Z4MJug9JmNYDRYUul5fCEvJ0wKBwQCLD5ICp6j2sIkQRXS51PWFQeOCdEQsCdNHNi6Oyb3Em3fXY3JDYseA5x/m93dLGEcge8+0uVvMhS3GWlOhYGiyy1ygXGnNOOg5oHaK5113t7YzBNUwIi+c80ul1hDg7ZGgD5Pwg54oXFuJuD5EY3svFVLgsay/VWmwqrOx0ds0KR72BS8rpgM3SqEuDB5XPf9KWFnJxKVVdQFjr7mjofSK/69stLmKwqa8PaOj/x5WB2yh/jJjgE6qt7a/iTGrgsECgcEArvIRJ+1b55SzZD+wiV8TqC17CFUiIH52GJdWkaou2GtEnreu6R+66jEUzcdJ/xdgSYmBwFEiV3cOU5x6gKCZYDI/tEStnVxb9mrtzc754nGzr94XnAWS5yTQhqFrK8Ep2fp6GAQLzefEMiw2n2dRsq5lRWO1M9gosUSP/6vwz0IuPDvUsPQ/D5s6psckwXBuoES6XzCc8/lMldbDe+j91cadRj2W/qcuHeCYPkVmK4AgjBKY3+BqKufzka1E7QxPAoHBAMHxPW5UBWdBIYkfRSgOEoLy9bX95ZqKYXIpOOgEmHBIfAOojrlT2TFmFfMeJLzkyHgiBU/qfGVE1EuBxEkDE7Li/oC+Lb6mul8BOQ51/D22ki8IcMNfwpEIUnhKFV21Hmb4vYMVnT1EhXjHd5nz8b2ljvdtyjfGzo0FWyDPGrvZ2TRpVlfUWm8XvGmTxWfIV77UDYkJoUgye6CFF+PO5m+N3rB96B6imyx06GPPxRfe/y6gbGe7txRx/pd459ydtQ==");
        //String a = encrypt("MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAI+kneP5IdDr2Wqr5KFXt14DjRj7ytitrquvhF44n5QTt6Ty2wkmtzLXEw7VKimEl0ddfBI1tlaGclb0aUirVSboimWTAVz8C3Kh4kM/cQm1RmAjkfp9LPQE8sUefXwLQ3HPUGvXT1TTsOpB0yxqtwGYpdhDD7ahk7PQqkDlvQVrAgMBAAECgYA8ASdX4W2n6a4kKnRSleLqqg8aHazqAPvTinmAJqU65VW02SJ42yxyV3gFnTSErXfIfxviO3/U+0ruWiFVEwV5oDEh0dOd+HHGm4YzFXIRglMeRBgLuVJ+owzoVDwZstiIBa69DIjaJtmpSf5FjwxAth+gtCv3e11IXHraKN720QJBAMPMB1WtmpRGYHxWVYjKSL+RGw+h3gMQLk3exZjhmYRlXuqfVZ2Zol+NazDc59K5f+geMdJ0/X2kKnKLVjWzYHMCQQC7z1cFYswtLemxGfj+dwlVC01VL4pKa7HGHl/FAQ2UNYZY2d5hE/nXYbTpfI0gMowX926/aFpia7NbAUJO7WEpAkAyUFa+LJthaOhYazMVsK2bFKW4kabkcJ8Fga6TR73UaNxIPGOa2SUBmuylpM6ptuNoeYHiDBAr3ijOQIIJ0KuDAkBy9fPahCNe9F+73J4hhVPdDtIDdto7u7hSAX215XMeabUW5iXNXqDsSg6nbWolb0t50CemWoYZALwE1Lx1+7AhAkEAoZtFt+2skjAxHEqNUye4vKBqB2Ng/wmfitCfT34lXWQsxs4BGk/8eQMzkam9bcB7FcinolxHF/1UjsUYpI+AgA==");
        String a = decrypt("fDshYRxHSlpJ2v+CmDGzH/PlFIKr9+hcPg0patE+nOFMKQaEVNLj9XxOlGEDFabSLFvy1imSRmOF08EE/z9cmlsp+hfbF6feR6YABRHgDxOGWusZ9QKYLhv6vDD6pebKb2W3FCuIHnLicMiJfzpM5KGylTMv7rvtM7tFR8ZhDzn3s8uYotz6ORcfCPdgOcUcNHXT0WS2KA0NigsRH5YMF5IOCP2jNTaOFDDXYacjfGOwjFIGE71BMJCnMRp6RnukbAY1ZN3J88GpYRzYCYD/S9DbGFVY9giH0T7FZs5cgPsCoDZ1dIeJhmjbOxoQpwKoDZzvlYbsstMH+6wApaWgx9TJfBoNjEJdqM1S3asukV4bUq4cZnmryCeSWSYkR2FDuH792rXL3Msh2Jc2hB2Cg9ZPB5hljN5GWV0fYiKNjJW2ovgBZZRWURorkrfBReKsxuLcHlbBcdHBF9DZDJyy40fg9GP6w40uG3hBKd/OlA9IYWNWEgqgeMkNmesG9RTc4X7EG2Ar4MEDa1p6o3unIve/zTCpLoFzKCRIjYcqlW1pZfSwZD4wu6JJf+5tUoXaEEf5YD4dcWCD4DzUcv4qhOpHXDBtM3E45VdacMWZNdE7fXcDzWpgYdUSQ88HsXRjmaW0O/x5irdN5KGa89yj5bDYQeMzR7Cervxml3MUZSrkHVKsa9yWverlLaRXzTue3+MXgDudm1stHju5p2x55GWG9ZfcErDoTNqhgPwcbJnW7/vXFpoTt6AF3t8vbD7f5G+FXnvYLDUWtdNS8KN6X+EOkh4GWootC+QMEKArDr8AyL+5D2TkBGIDMAag/LVwAKSwvBs2+e/xsSlw+AuAsWcfb9whJCZNVogpA1jE56SIdIBtw4G4Lw9LMlJ2MprkV6e2VAtBwpou3fd5pUsKpu51WBfISRy60vls7Fu0mQXrT7cCzThptrk9KgIhjMtiI2jf6YpultF1+Hg5+IK863wKpiNmJbxmA+AOc171LVmNlqiSdDp2fptfIgaI5IMcLMJj8zvY2gghAGoRrchpSkteTLc48om87Duw1gR5lAZjUYzNON9wETte9bfUvQ6/ZkQE3rjEUY6TfyokKJf4X/0ZxKFz0YzkcHDXBaPefrIWxQGygeTsy0kZO7UKpYZo");
        decrypt(a);
 
    }
 
    /**
     * 加密使用密钥
     */
    private static final String PRIVATE_KEY = "hELEEWWEEr9Lu6HgEvttjj8vYhy3ID+PqPbumuXhcHhe";
 
    private static BasicTextEncryptor basicTextEncryptor = new BasicTextEncryptor();
 
    static {
        //basicTextEncryptor.setPassword(Objects.requireNonNull(RSAUtil.decrypt("DF3lSrjXSHClZgQzagH0D038z1gCoG+FcZLPMZ93Ucz1MeNCN+J5iawqQKzMXusXPuHeygfuLSajiCNi8ad2F7H7lpL9FhzjH+2Q9d9d1H2xRe+ElHh0SC8aT4FHgrazhx73wn2MlxX8SIm2PvC8oBLXbM+7KQ4r5bNwiQl0uUOC7D9ONbYzQAy8zCkCBke+h4Q6b5SlGaGz2OswKJPe7Wjpsf/3hnUKV6KP+ACYfFry9Nq13Wb3nsPfjuMnwsmUe8sRxj77pIVmrbEIMaO12GJMJbErA0/1ZjfPkzH3YFZe/mmSOmHegM/jiXnnPemh+LRyZGrKF3Y19B8Cl1EMxp106ss8/7ypYiFn0XWb7gRQqfuqQ8zsU0lOWxCWuk2jyWKxBdftt3edDzmoROHJfllHRffgPZ/MPYg6C6JqBXz7Xqngb0mClwt7OQVSvTau+NdTlMoYdcULOTZqa8IJi4rtUMMnVdhj0Avpl6ekXBPeVcvWsqTpGoep5T0yQJ9M")));
        basicTextEncryptor.setPassword(Objects.requireNonNull(PRIVATE_KEY));
    }
 
    /**
     * 私有构造方法,防止被意外实例化
     */
    private JasyptUtils() {
    }
 
    /**
     * 明文加密
     *
     * @param plaintext 明文
     * @return String
     */
    public static String encrypt(String plaintext) {
        log.info("明文字符串为:{}", plaintext);
        // 使用的加密算法参考2.2节内容,也可以在源码的类注释中看到
        String ciphertext = basicTextEncryptor.encrypt(plaintext);
        log.info("密文字符串为:{}", ciphertext);
        return ciphertext;
    }
 
    /**
     * 解密
     *
     * @param ciphertext 密文
     * @return String
     */
    public static String decrypt(String ciphertext) {
        log.info("密文字符串为:{}", ciphertext);
        ciphertext = "ENC(" + ciphertext + ")";
        if (PropertyValueEncryptionUtils.isEncryptedValue(ciphertext)) {
            String plaintext = PropertyValueEncryptionUtils.decrypt(ciphertext, basicTextEncryptor);
            log.info("明文字符串为:{}", plaintext);
            return plaintext;
        }
        log.error("解密失败!");
        return "";
    }
}