import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class RSADemo {
public static void main(String[] args) throws NoSuchAlgorithmException {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(2048);
KeyPair pair = keyGen.generateKeyPair();
byte[] publicBytes = pair.getPublic().getEncoded();
byte[] privateBytes = pair.getPrivate().getEncoded();
System.out.println("public key: " + base64Encode(publicBytes));
System.out.println("private key: " + base64Encode(privateBytes));
}
static String base64Encode(byte[] bytes) {
return Base64.getEncoder().encodeToString(bytes);
}
}
运行结果
public key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArWtHzMGmZJ0vGNnGE3h+fGL6zKSyb8DmQrNT/JDopQWWpLcynMTV+l/tLc8IcQLBMXWgMPA5K9dIhwUm7kvQ0FXwTH/DO2SqpJ6gfkDgo9YK028kWRPIVMgpcoeoRCcb5bJKosoBReikD65hLDzqw5DjWBNDvk2KsVNKmXN/sFkbj65JbF4iwv40GlTb777mCJI4X7VWaMveOji3qqTIgT/BbuL3QYJqHNAcH6YEz55Jv5eDv72MJ8eHHzFhSA/JX4cXPWLePCU+1fP6HG93CXw5xy7uusAD/0AyOOOW4zsE+6zc0a/NFWghjKULwI2G9m8/B/ckPAbZvOHIOBO9OwIDAQAB
private key: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCta0fMwaZknS8Y2cYTeH58YvrMpLJvwOZCs1P8kOilBZaktzKcxNX6X+0tzwhxAsExdaAw8Dkr10iHBSbuS9DQVfBMf8M7ZKqknqB+QOCj1grTbyRZE8hUyClyh6hEJxvlskqiygFF6KQPrmEsPOrDkONYE0O+TYqxU0qZc3+wWRuPrklsXiLC/jQaVNvvvuYIkjhftVZoy946OLeqpMiBP8Fu4vdBgmoc0BwfpgTPnkm/l4O/vYwnx4cfMWFID8lfhxc9Yt48JT7V8/ocb3cJfDnHLu66wAP/QDI445bjOwT7rNzRr80VaCGMpQvAjYb2bz8H9yQ8Btm84cg4E707AgMBAAECggEBAKzqkq4szT/3pxVtV97kP6LBgvf4pN9fhXkunGjzCLY7C0l0TegZMI81hSYvEGi26XHqqm8BqM/5Gp1e2sGzISQK/M8aec3IA4qfjMI26IcUjrjiUmjrm85Fw2Yqs/I42M1A6MDHEVvmq2fjZYsZtrCH0NhqZRrk8Iz90x2NF936Z4hZAN/9g6eefcdDQBReKWXTvWPg4s1xNmv4JIQg8ZIAbd4Rq84gLiuwhD7UDue/7dnAjz/OLN4ptacOgnTg+LX8Z4dGgDTeos9mOKnY347fq/bI2lN44uOoeoylzFUhw6O/ac61hdLtpJQoC3bkSj2JORsSvH5/ooM9m4nB5fkCgYEA1rwhF//+Z49mifCeVgcBRz/crlnoiuCrAEl609lC2jX2eADqvolx0vfYET2DUdIIa3WXl94gATL7ee7oIc+Kse19YASCF0Q3Fcd4wXRTc8zYq4cS5GB8g0bERZghHa5Faftk/VpSOJrhGdRww1Kudixq8kMQGJSzIMjErA5xvBcCgYEAzr6fNH+mktusnDqsA88SbaFuZ0mJhzBYCs+v7AUqs9Ir3tfHzRjQCC+OK8kU5hF8uiCe9kvwnZ070+U4qrdPBO9qKenfa3wE1h42zhVcIiu615rPL4Bda35Ek47f6/fBUqFWueB93Md0W200Sc/0uaXbI71QmgQyKClXSVWeCn0CgYEAvtHDHs6vxltaJW4bZhsneac4df8TdIYdr02cxrEkhUC62v0FnXgKHA1+hiOBlK3uKX//zEbpbedeLYat5Y3GlEKUzUR0TjSiNsphdpfmqNr6F8MaeLN9MjMqqyV7GCMLMBjkL3eZ5Q9MxWVRJ2FMA1uJVeteXFmXrKR8kODtFNUCgYB+KOSN7LeBNnwGeecuC9Z6/9+XN9CspluTfVkk9aIxSTdsLNDH3zRTSnG/Vl1iZ5ltGyrlsUGLbL9tdps10dZudIqcORMVTADHiHh5GZ+3WmgR2W5E1lgrmEnQoYcTP4TBH6MEmnEzoKLoh6M4x6XXA9bN4GCnG5hf2ZpiLdTbIQKBgAY9DnRjbUnoanbPmAIqDRWT1fV/Rg//3u62CaFpw5LmRh0ZahNbPVHFRgbbai7W0luDAZzo8RGHlMyd5m3OpnalU/zL7wDtp/Jef8zi3s9VuZ5oKVGuyzmM0FXGfXG6JuXm3UQIKtXOeThDPEWbhUeKgk0uEVbdGTjfG7ibHCIC