/**
 
 * 工程名：dx
 * 文件名：RasUtil.java
 * 创建日期：2022年7月25日 上午9:07:49
 * 作者：mt.W
 */
package com.lion.util;

import java.nio.charset.StandardCharsets;
import java.security.KeyFactory;
import java.security.interfaces.RSAPrivateKey;
import java.security.spec.PKCS8EncodedKeySpec;
import org.apache.commons.codec.binary.Base64;

import javax.crypto.Cipher;

/**
 * 类描述
 * 
 * @author mt.W
 * @since 2022年7月25日
 */
public class RasUtil {

	public static String decrypt(String str, String privateKey) throws Exception {
		// 64位解码加密后的字符串
		byte[] inputByte = Base64.decodeBase64(str.getBytes(StandardCharsets.UTF_8));
		// base64编码的私钥
		byte[] decoded =Base64.decodeBase64(privateKey.getBytes(StandardCharsets.UTF_8));
		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;
	}
}
