生成RSA密钥对并将private编码为字符串

我想生成512位RSA密钥对,然后将我的公钥编码为字符串。 我怎样才能做到这一点?

输出为Hex-String

import java.security.*; public class Test { public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException { KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(512); byte[] publicKey = keyGen.genKeyPair().getPublic().getEncoded(); StringBuffer retString = new StringBuffer(); for (int i = 0; i < publicKey.length; ++i) { retString.append(Integer.toHexString(0x0100 + (publicKey[i] & 0x00FF)).substring(1)); } System.out.println(retString); } } 

输出为字节值

 import java.security.*; import java.security.*; public class Test { public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException { KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(512); byte[] publicKey = keyGen.genKeyPair().getPublic().getEncoded(); StringBuffer retString = new StringBuffer(); retString.append("["); for (int i = 0; i < publicKey.length; ++i) { retString.append(publicKey[i]); retString.append(", "); } retString = retString.delete(retString.length()-2,retString.length()); retString.append("]"); System.out.println(retString); //eg [48, 92, 48, .... , 0, 1] } }