package mimaxue;
import
java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.interfaces.RSAPublicKey;
import java.security.interfaces.RSAPrivateCrtKey;
import java.util.logging.Level;
import java.util.logging.Logger;
public class RSA {
//创建密钥对生成器,指定加密和解密算法为RSA
public
String[] Skey_RSA(int
keylen){//输入密钥长度
String[] output = new String[5]; //用来存储密钥的e n d p
q
try {
KeyPairGenerator kpg =
KeyPairGenerator.getInstance("RSA");
kpg.initialize(keylen);
//指定密钥的长度,初始化密钥对生成器
KeyPair kp = kpg.generateKeyPair(); //生成密钥对
RSAPublicKey puk =
(RSAPublicKey)kp.getPublic();
RSAPrivateCrtKey prk = (RSAPrivateCrtKey)kp.getPrivate();
BigInteger e = puk.getPublicExponent();
BigInteger n = puk.getModulus();
BigInteger d = prk.getPrivateExponent();
BigInteger p = prk.getPrimeP();
BigInteger q = prk.getPrimeQ();
output[0]=e.toString();
output[1]=n.toString();
output[2]=d.toString();
output[3]=p.toString();
output[4]=q.toString();
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(RSA.class.getName()).log(Level.SEVERE, null,
ex);
|