在下面的代码我创建公共
和加密的私钥。
我真的想在Android java源代码中嵌入Public Key。
由于它们是Object,我不明白如何在代码中包含公钥 我试图创建一些最终的字符串但是没有用
任何帮助将不胜感激 也许这是一个糟糕的因素,因为我没有多少谈论它
public void GenerateKeyPair()
{
try{
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair kp = kpg.genKeyPair();
KeyFactory fact = KeyFactory.getInstance("RSA");
RSAPublicKeySpec pub = fact.getKeySpec(
kp.getPublic(),RSAPublicKeySpec.class);
RSAPrivateKeySpec priv = fact.getKeySpec
(kp.getPrivate(),RSAPrivateKeySpec.class);
saveToFile("public.key", pub.getModulus(),pub.getPublicExponent());
saveToFile("private.key", priv.getModulus(),priv.getPrivateExponent());
}catch(Exception e){
System.out.println(e.getMessage());
}
}
public void saveToFile(String fileName,BigInteger mod,
BigInteger exp) throws Exception {
ObjectOutputStream oout = new ObjectOutputStream
(new BufferedOutputStream(new FileOutputStream(fileName)));
try {
oout.writeObject(mod);
oout.writeObject(exp);
} catch (Exception e) {
throw new Exception("error", e);
} finally {
oout.close();
}
}
答案 0 :(得分:1)
回答我自己的问题。
// create the string for client to use
byte[] b = Base64.encodeBase64(keyPair.getPublic().getEncoded());
String encodedString = new String(b);
System.out.println(encodedString);