2024-05-11 16:40:25 +08:00
|
|
|
|
package com.sf.vertx.security;
|
|
|
|
|
|
2024-05-24 18:54:30 +08:00
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
|
import java.net.URLDecoder;
|
|
|
|
|
import java.net.URLEncoder;
|
2024-05-11 16:40:25 +08:00
|
|
|
|
import java.security.KeyFactory;
|
|
|
|
|
import java.security.KeyPair;
|
|
|
|
|
import java.security.KeyPairGenerator;
|
|
|
|
|
import java.security.NoSuchAlgorithmException;
|
2024-05-24 18:54:30 +08:00
|
|
|
|
import java.security.SecureRandom;
|
2024-05-11 16:40:25 +08:00
|
|
|
|
import java.security.interfaces.RSAPrivateKey;
|
|
|
|
|
import java.security.interfaces.RSAPublicKey;
|
|
|
|
|
import java.security.spec.PKCS8EncodedKeySpec;
|
|
|
|
|
import java.security.spec.X509EncodedKeySpec;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
import javax.crypto.Cipher;
|
|
|
|
|
|
2024-05-24 18:54:30 +08:00
|
|
|
|
import org.apache.commons.codec.binary.Base64;
|
|
|
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
|
|
|
|
2024-05-11 16:40:25 +08:00
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
public class RSAUtil {
|
|
|
|
|
|
2024-05-24 18:54:30 +08:00
|
|
|
|
// RSA最大加密明文大小
|
2024-05-11 16:40:25 +08:00
|
|
|
|
private static final int MAX_ENCRYPT_BLOCK = 117;
|
|
|
|
|
|
2024-05-24 18:54:30 +08:00
|
|
|
|
// RSA最大解密密文大小
|
2024-05-11 16:40:25 +08:00
|
|
|
|
private static final int MAX_DECRYPT_BLOCK = 128;
|
|
|
|
|
|
2024-05-24 18:54:30 +08:00
|
|
|
|
private RSAUtil() {
|
2024-05-11 16:40:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2024-05-24 18:54:30 +08:00
|
|
|
|
* 获取公钥和私钥对,key为公钥,value为私钥
|
2024-05-11 16:40:25 +08:00
|
|
|
|
*
|
2024-05-24 18:54:30 +08:00
|
|
|
|
* @return
|
|
|
|
|
* @throws NoSuchAlgorithmException
|
2024-05-11 16:40:25 +08:00
|
|
|
|
*/
|
2024-05-24 18:54:30 +08:00
|
|
|
|
public static Map<String, String> genKeyPair() throws NoSuchAlgorithmException {
|
|
|
|
|
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
|
|
|
|
|
keyPairGen.initialize(1024, new SecureRandom());
|
|
|
|
|
KeyPair keyPair = keyPairGen.generateKeyPair();
|
|
|
|
|
RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
|
|
|
|
|
RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
|
|
|
|
|
String publicKeyString = null;
|
|
|
|
|
String privateKeyString = null;
|
2024-05-11 16:40:25 +08:00
|
|
|
|
|
2024-05-24 18:54:30 +08:00
|
|
|
|
try {
|
|
|
|
|
publicKeyString = new String(Base64.encodeBase64(publicKey.getEncoded()), "UTF-8");
|
|
|
|
|
privateKeyString = new String(Base64.encodeBase64(privateKey.getEncoded()), "UTF-8");
|
|
|
|
|
} catch (UnsupportedEncodingException var7) {
|
|
|
|
|
var7.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, String> keyPairMap = new HashMap<>();
|
|
|
|
|
keyPairMap.put("publicKey", publicKeyString);
|
|
|
|
|
keyPairMap.put("privateKey", privateKeyString);
|
|
|
|
|
return keyPairMap;
|
2024-05-11 16:40:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-05-24 18:54:30 +08:00
|
|
|
|
public static String encrypt(String str, String publicKey) throws Exception {
|
|
|
|
|
byte[] decoded = Base64.decodeBase64(publicKey);
|
|
|
|
|
RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA")
|
|
|
|
|
.generatePublic(new X509EncodedKeySpec(decoded));
|
|
|
|
|
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
|
|
|
|
|
cipher.init(1, pubKey);
|
|
|
|
|
// 分段加密
|
|
|
|
|
// URLEncoder编码解决中文乱码问题
|
|
|
|
|
byte[] data = URLEncoder.encode(str, "UTF-8").getBytes("UTF-8");
|
|
|
|
|
// 加密时超过117字节就报错。为此采用分段加密的办法来加密
|
|
|
|
|
byte[] enBytes = null;
|
|
|
|
|
for (int i = 0; i < data.length; i += MAX_ENCRYPT_BLOCK) {
|
|
|
|
|
// 注意要使用2的倍数,否则会出现加密后的内容再解密时为乱码
|
|
|
|
|
byte[] doFinal = cipher.doFinal(ArrayUtils.subarray(data, i, i + MAX_ENCRYPT_BLOCK));
|
|
|
|
|
enBytes = ArrayUtils.addAll(enBytes, doFinal);
|
2024-05-11 16:40:25 +08:00
|
|
|
|
}
|
2024-05-24 18:54:30 +08:00
|
|
|
|
return Base64.encodeBase64String(enBytes);
|
2024-05-11 16:40:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2024-05-24 18:54:30 +08:00
|
|
|
|
* 公钥分段解密
|
2024-05-11 16:40:25 +08:00
|
|
|
|
*
|
2024-05-24 18:54:30 +08:00
|
|
|
|
* @param str
|
|
|
|
|
* @param privateKey
|
|
|
|
|
* @return
|
|
|
|
|
* @throws Exception
|
2024-05-11 16:40:25 +08:00
|
|
|
|
*/
|
2024-05-24 18:54:30 +08:00
|
|
|
|
public static String decrypt(String str, String privateKey) throws Exception {
|
|
|
|
|
// 获取公钥
|
|
|
|
|
byte[] decoded = Base64.decodeBase64(privateKey);
|
|
|
|
|
RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA")
|
|
|
|
|
.generatePrivate(new PKCS8EncodedKeySpec(decoded));
|
|
|
|
|
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
|
|
|
|
|
cipher.init(2, priKey);
|
|
|
|
|
byte[] data = Base64.decodeBase64(str.getBytes("UTF-8"));
|
|
|
|
|
|
|
|
|
|
// 返回UTF-8编码的解密信息
|
|
|
|
|
int inputLen = data.length;
|
|
|
|
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
|
|
|
int offSet = 0;
|
|
|
|
|
byte[] cache;
|
|
|
|
|
int i = 0;
|
|
|
|
|
// 对数据分段解密
|
|
|
|
|
while (inputLen - offSet > 0) {
|
|
|
|
|
if (inputLen - offSet > MAX_DECRYPT_BLOCK) {
|
|
|
|
|
cache = cipher.doFinal(data, offSet, MAX_DECRYPT_BLOCK);
|
|
|
|
|
} else {
|
|
|
|
|
cache = cipher.doFinal(data, offSet, inputLen - offSet);
|
|
|
|
|
}
|
|
|
|
|
out.write(cache, 0, cache.length);
|
|
|
|
|
i++;
|
|
|
|
|
offSet = i * 128;
|
2024-05-11 16:40:25 +08:00
|
|
|
|
}
|
2024-05-24 18:54:30 +08:00
|
|
|
|
byte[] decryptedData = out.toByteArray();
|
|
|
|
|
out.close();
|
|
|
|
|
return URLDecoder.decode(new String(decryptedData, "UTF-8"), "UTF-8");
|
2024-05-11 16:40:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) throws Exception {
|
2024-05-24 18:54:30 +08:00
|
|
|
|
Map<String, String> keyMap = genKeyPair();
|
|
|
|
|
String publicKey = keyMap.get("publicKey");
|
|
|
|
|
String privateKey = keyMap.get("privateKey");
|
|
|
|
|
privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIBjjfp2vkdIDzw9vTzei9S1Gg8KLfPWNYfESwgqGvPY/ps3rIfgPH4na3qy957AY/zHExjaPGbbBRBRPV3xg1vrccr0oZLPiC5n7+4Z5TR6wYiPOn3osSjCweUJ7LttOTAr8sqvaHlrDbpZD+ZoOiB0TEWWD9TvI4pK0sVs7JYRAgMBAAECgYAJ08T3c80Y/u2mnGmunfC5U3LnDY4KpN30Uky1d2aYfWawqhRnUp1CwUDvc4EzajHFFJZUP8khjNhwgS1nsk+t9fnz/GJSS2ZYIOn/i1WEKCJvCILuFpx9tqQM1I9EdueeW1VQgm24o6vbBTP6JzoRXN/l/dAGldluY+Y2JclVeQJBAIyZdxIo1G7qs2nbKkynQaPY/ogmn7VLTWwowri1bhWt0zzcDu3/TgLLPldWVwYUuRChyVvX3cuQB0ICwiKTB3kCQQDpxGufjUgalAZwe+RCxIDriKVvYmB/krk/escAR39Ya6Od7nHSbmdBUmc7vjLbVN3BsYWZrlxHnGelEetebqVZAkBJrxvR7of2YRYJwgxXA8jIv64VWHiWoJJAvtPdzWeWAPUVjhZc8FHH8RAI4XzV+QJMDx3h/i2Ew0SqeZuYVwmxAkBh2T3TQyfzOBKZ8sHQ0L/F1ySoQt1xiNDRqWqyyzqaoDOUX8J0+pFt3jgn4a0X8aYA9XWepkUqFGWtyppipJ3BAkEAigeRnLS/J4Z6inWy4XJfFrggYvtQvWQnGfjHNQijm7+c8Nb+gs2EjbkEHg13yFUpBa3sVPN+aOhP2R41t4EywA==";
|
|
|
|
|
publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCAY436dr5HSA88Pb083ovUtRoPCi3z1jWHxEsIKhrz2P6bN6yH4Dx+J2t6sveewGP8xxMY2jxm2wUQUT1d8YNb63HK9KGSz4guZ+/uGeU0esGIjzp96LEowsHlCey7bTkwK/LKr2h5aw26WQ/maDogdExFlg/U7yOKStLFbOyWEQIDAQAB";
|
|
|
|
|
log.info("publicKey = " + publicKey);
|
|
|
|
|
log.info("privateKey = " + privateKey);
|
|
|
|
|
String originValue = "{\n"
|
|
|
|
|
+ " \"data\": \"1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划<EFBFBD><EFBFBD>
|
|
|
|
|
+ " \"data1\": \"11是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划
|
|
|
|
|
+ " \"data2\": \"11是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划署的环境封建社会的大是大非上对方哈史蒂芬霍金啊说1是发送到发送到发哈都是开发计划
|
|
|
|
|
+ "}";
|
|
|
|
|
// 加密前:原数据123456,测试一下
|
|
|
|
|
System.out.println("加密前:" + originValue);
|
|
|
|
|
|
|
|
|
|
String encrypt = encrypt(originValue, publicKey);
|
|
|
|
|
log.info("加密后:" + encrypt);
|
|
|
|
|
encrypt = "HxlTvNpgMBj3tcqcXWQc1SFvn8c4nv0HYBlvuVy07BUa1ynQXhhNoT9o7iX5/edJ9xLGITsWRMUfQvuND9ttsyQS44oRmbkRBAdLZQOxaS4hkMDGleWMZII0VgQbULeOd7SEq5Ba2UU7TDySg0VLRgRRgnxt2qUig9Gx/3quQY19Ts9Wu+NBRi1JvCQD5bKi+9BW+jMKIjZ5hx2MwsVVIQDkoQKLcRTV6lejrXdPP7fFo6rG3/OULM7+U/rw2EoC+F+2NRIoEIQj2jclmM8kqAspNJH2NmP/0lsgjay7/nK2nU1Gz/zeQsSVgJmggTUxTImKk5eoqckuNdPD2mwyRQ==";
|
|
|
|
|
String decrypt = decrypt(encrypt, privateKey);
|
|
|
|
|
log.info("解密后:" + decrypt);
|
2024-05-11 16:40:25 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-24 18:54:30 +08:00
|
|
|
|
|