需求
生成RSA2048密钥对,并转化为Base64字符串。
代码
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.Base64;
public class GenerateKeyPair {
public static void main(String args[]) throws Exception{
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
String pubBase64 = Base64.getEncoder().encodeToString(publicKey.getEncoded());
String priBase64 = Base64.getEncoder().encodeToString(privateKey.getEncoded());
System.out.println("公钥:");
System.out.println(pubBase64);
System.out.println("私钥:");
System.out.println(priBase64);
}
}
这里转化为base64都是使用java.util.Base64
。bc包和apache commons codec里面都有相关的方法。我个人其实最喜欢使用的是apache commons codec包。