shikeyin
2024-01-11 65da8373531677b1c37a98f53eaa30c892f35e5a
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
package com.iplatform.base.util;
 
import com.iplatform.core.util.AESUtils;
import com.walker.infrastructure.utils.Base64;
import com.walker.infrastructure.utils.Base64Utils;
import com.walker.infrastructure.utils.RSAUtil;
import com.walker.infrastructure.utils.StringUtils;
 
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.spec.PKCS8EncodedKeySpec;
 
public class PlatformRSAUtils {
 
    /**
     * 使用公共密钥,解密密码数据。<p>目前APP端使用(电商)</p>
     * @param encryptString
     * @return
     * @date 2023-07-11
     */
    public static final String getAesDecryptValue(String encryptString){
        if(StringUtils.isEmpty(encryptString)){
            throw new IllegalArgumentException("加密后密码不能为空");
        }
        return AESUtils.decryptStrAES(encryptString, AES_KEY);
    }
 
    /**
     * 返回加密之前的原始内容(解密原始字符串)
     * @param encryptString 加密的内容(RSA)
     * @param privateKeyString 私钥字符串
     * @return
     * @date 2023-03-20
     */
    public static final String getRsaDecryptValue(String encryptString, String privateKeyString){
        PrivateKey privateKey = getRsaPrivateKey(privateKeyString);
        if(privateKey == null){
            throw new IllegalStateException("通过私钥字符串生成'PrivateKey'异常!");
        }
        return RSAUtil.decrypt(privateKey, Base64.decode(encryptString.getBytes()));
    }
 
    /**
     * 根据私钥字符串,生成对应的私钥对象。<br>RSA标准算法,PKCS8EncodedKeySpec
     * @param privateKeyString
     * @return
     * @date 2023-03-20
     */
    public static final PrivateKey getRsaPrivateKey(String privateKeyString){
        try{
            byte[] keyBytes = Base64Utils.decode(privateKeyString);
            PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            PrivateKey privateK = keyFactory.generatePrivate(pkcs8KeySpec);
            return privateK;
 
        } catch (Exception ex){
            ex.printStackTrace();
            return null;
        }
    }
 
    public static final String AES_KEY = "MIGfMA0GCSqGSIb3";
 
    private static final String PUBK = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDffJ9KczIXi+nsa2Sib3rLnZ5R\n" +
            "yhlY5enEhZTQc1GcTeZb6gqu4HoDJV6lskfexSNCUC/3mmNj2nruWGgRg6iVCAMB\n" +
            "Uf5oMv5nVqIhZ5davy1UZ9yvwL0+yVhBSXmamUmezQlh0H3clUI1N3Hc9aCiulB6\n" +
            "RMIsv1aukBkTBhgQZQIDAQAB";
    public static final String PRIK = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAN98n0pzMheL6exr\n" +
            "ZKJvesudnlHKGVjl6cSFlNBzUZxN5lvqCq7gegMlXqWyR97FI0JQL/eaY2Paeu5Y\n" +
            "aBGDqJUIAwFR/mgy/mdWoiFnl1q/LVRn3K/AvT7JWEFJeZqZSZ7NCWHQfdyVQjU3\n" +
            "cdz1oKK6UHpEwiy/Vq6QGRMGGBBlAgMBAAECgYBEyOuSE5CIVMTjwk4P/LXTs6iF\n" +
            "zektRl5D4UVjPwsQS52qDofJOUf0be0KnKuoMg7fGyUYVUlf81/Aui8VrOsWmEbU\n" +
            "8XL41Pi3m6EWWGeWE1/5q+j29jxYrrhfBcpBH/4fBKMhiNJ+jnJ2bH+TpngRwpNe\n" +
            "nVIfxRU5FdHOL3WNIQJBAPKGUSOgynf82LEQfvpzzp8gqhGMVbnVIqtezUNPQyK2\n" +
            "da7ryWYP88SE38JhB6GlM6bimCWRgIzodydccuJTd50CQQDr54J5upPlMsR3im0Q\n" +
            "qCeVbrGfn+DO226cZMaUhbVwxY7xy4ewXyt4yY6vBxwYX7GYs24jZPKekyWDeqr2\n" +
            "UrVpAkBmXJSwkfQC8sBO86R0dx6VgUbmwzGHjtLkO84tA65VX2eKXdCSeFct8dsz\n" +
            "gpqi+kQzwt3utVvpnVB1V4rRxeLtAkEAm/2SQXwmn8BaOdHHHOSUiDOSMMM/nIlt\n" +
            "Mu1QgpWHzPJV+31iVDYaQNzHBOXmphdhEGBVzAHMjR8wByjuM8OtQQJBAM8pK710\n" +
            "JC6YzfchqlNMFRh6kieWEx+o+aoWtL0EmeHB56nF96QHPW09UAP2VRUdadgSD+1w\n" +
            "Zmw/rOnAk8t/ryg=";
}