You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
2.2 KiB

3 years ago
package com.eco.plugin.wink.kksso.utils;
import javax.crypto.Cipher;
import java.security.KeyFactory;
import java.security.interfaces.RSAPrivateKey;
import java.security.spec.PKCS8EncodedKeySpec;
public class RSAUtil {
/**
* RSA私钥解密
*
* @param str 加密字符串
* @param privateKeyString 私钥
* @return 明文
* @throws Exception 解密过程中的异常信息
*/
public static String decrypt(String str, String privateKeyString) throws Exception{
//64位解码加密后的字符串
byte[] inputByte = EncryptUtils.base64DecodeB(str);
//base64编码的私钥
byte[] decoded = EncryptUtils.base64DecodeB(privateKeyString);
RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(decoded));
//RSA解密
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, priKey);
String outStr = new String(cipher.doFinal(inputByte));
return outStr;
}
public static void main(String[] args) throws Exception {
String key = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ9mAcsCn52HD0aFqb79uGWEwcirWq3zd06fftI018HFwnuz3Db7VaIuI0bWX6xtAmkv86uqtFZrnn8/9XVxhR1uk26JHCTRGhHr/+yZZqpdhi44uYtFhCBECpWKz0Xqvb4Fnrd+tMI4i/s5FuwTJzcY4MRSDU9aAwtGlE74p6sdAgMBAAECgYANqCC5MwVX6s1tPmB3w6c7028C8WN4ieaL7vBftDVUHcx26scQUuJYXdmZ5R4XWNOfDYO0DpEa4meXAXTXVh2Qb6upFXl5sySzUWYtTBCttbj4Sx7NjwDPGu8Z+1OovQurRcvvAWjcat+dJDDXsqu5bRlAz/YcIGARAKWVKCYVIQJBAPbe16TacJ/85QYZowaPP8cqTjXNj+f0GLr8ax1Ww7zX3iqMYRaYmN7920BC666vL52tMZYomeO1wENCrl4RYTkCQQClSw4EjlYbZNNCYizW6WPSSBZaaKVALzt6ACCPaF2sZcqiWHegsirpfPtHebBDfInWWtUD4xBCdHCAt1o4x+0FAkBqeoVScnE/YEm8DtS1IJYmpkWjiS03o54DEJp2xhSY4BbQDUpW/6x4CdBGcFbNOnx0Kt6HYK23fI4XtKwWoLJpAkEAi5e2L+zRFXNx4qcsvRb/oVAV6KZloK4C6cZ/uPzn1zdkCPTzmne9O9C8GaHQVT4w3iF5sj2ptqXFeT7faAKXzQJAL15yVhanXqN/EuxmAQZ8K4E4wFolsqK7ncsYCw0j9/NFYLtFiISol5A0jUhc7AaMEybQqMtm4pJOhym2tvcpDg==";
String token = "Zj5NhKG9gcOwRMcAyUJD0fc2Vzhz0xFbEU9AQjuV4cAFiCkRKNU6BOyD59Hvtqy9tWjJUM6ZMoKtywJASFN87pLN5DjdBGLkJCZBGMWj97g6mf7r7j1x+4aTw1Jj5FcIEQnK+HpAQzDve/0Y/D0cjWn2AYy9FUeE9e40lxT6aqQ=";
System.out.println(decrypt(token,key));
}
}