使用Java将RSA公钥导出到PEM字符串
因此,我正在使用Spongy Castle(Android)为RSA公钥生成PEM编码的字符串,并将其上传到服务器。这是我目前正在做的:
PublicKey publicKey = keyPair.getPublic(); StringWriter writer = new StringWriter();
PemWriter pemWriter = new PemWriter(writer);
pemWriter.writeObject(new PemObject("RSA PUBLIC KEY", publicKey.getEncoded()));
pemWriter.flush();
pemWriter.close();
return writer.toString();
现在,您可能已经知道,我不确定如何构造PemObject
或是否有更简单的方法来执行此操作。
当使用Bouncy Case时,我曾经这样做过
StringWriter writer = new StringWriter(); PEMWriter pemWriter = new PEMWriter(writer);
pemWriter.writeObject(keyPair.getPublic());
pemWriter.flush();
pemWriter.close();
return writer.toString();
但是由于某种原因,海绵城堡中不存在PEMWriter类
回答:
好的,这可能不是最聪明的方法(或者也许是?),但是在检查了PEMWriter
此类的源代码之后,基本上是在后台进行此操作:
- 当调用
writeObject
它创建一个实例MiscPEMGenerator
MiscPEMGenerator
然后PemObject
通过检查构造函数的参数类型来创建,以下摘录自MiscPEMGenerator
的源代码:
private PemObject createPemObject(Object o){ ...
else if (o instanceof PublicKey)
{
type = "PUBLIC KEY";
encoding = ((PublicKey)o).getEncoded();
}
...
return new PemObject(type, encoding);
}
因此,从MiscPEMGenerator
代码中可以看出,我唯一需要更改的就是将类型参数从“ RSA PUBLIC KEY”更改为“ PUBLIC
KEY”。这是最终代码。
PublicKey publicKey = keyPair.getPublic(); StringWriter writer = new StringWriter();
PemWriter pemWriter = new PemWriter(writer);
pemWriter.writeObject(new PemObject("PUBLIC KEY", publicKey.getEncoded()));
pemWriter.flush();
pemWriter.close();
return writer.toString();
以上是 使用Java将RSA公钥导出到PEM字符串 的全部内容, 来源链接: utcz.com/qa/434124.html