**js 使用rsa公钥加密一般有两种,在这是使用java生成的密钥对
JAVA生成密钥对,以及加解密的代码**
package com.sg.demo.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.Provider;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.interfaces.RSAPrivateCrtKey;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import javax.crypto.Cipher;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Base64;
import org.junit.Test;
public class RSAUtil {
private static PublicKey publicKey;
private static RSAPrivateCrtKey privateKey;
private static final String Algorithm = “RSA”;//使用base64编码解密时用:”RSA/None/PKCS1Padding”
private static final String CharSet = “UTF-8”;
private static String PublicKeyStr = “”;
private static String PrivateKeyStr = “”;
private static final String PWD_STRING = “000000”;
private static String MERCHANT = “TEST”;
private static final String KEY_FILE_SUFFIX = “.key”;
private static final String TEXT_FILE_SUFFIX = “.txt”;
private static String PATH = “F:\” + MERCHANT + “\”;
/**
* @throws Exception
* 生成key
*/
@Test
public void generateKeyPairTest( ) throws Exception {
RSAUtil.generateKeyPair( null, null, 2048 );
}
@Test
public void test( ) throws Exceptio