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 { /** * 使用公共密钥,解密密码数据。

目前APP端使用(电商)

* @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())); } /** * 根据私钥字符串,生成对应的私钥对象。
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="; }