public class RSA {
public static void main(String []args)throws Exception
{
String ptext = "he";
//获取公钥生成参数
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
KeyPair keyPair = kpg.genKeyPair();
RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
System.out.println("公共码"+publicKey.getModulus().toString());
byte[] ptexts = ptext.getBytes("UTF8");
BigInteger m = new BigInteger(ptexts);
BigInteger c = m.modPow(publicKey.getPublicExponent(), publicKey.getModulus());
System.out.println("密文"+c);
//System.out.println("d:"+privateKey.getPrivateExponent());
System.out.println("私密码"+privateKey.getModulus());
BigInteger jm=c.modPow(privateKey.getPrivateExponent(), privateKey.getModulus());
System.out.println("解码数据"+jm);
byte[] mt =jm.toByteArray();
System.out.print("解码结果");
for(int i=0;i<mt.length;i++){
System.out.print((char)mt[i]);
}
}
}