如何从xml文件中读取Java中的RSA公钥?
这是文件格式。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<RSAKeyValue>
<Modulus>jWa96uXeSM6hUH0E/ueihtuowdte8</Modulus>
<Exponent>BAAQ</Exponent>
</RSAKeyValue>
答案 0 :(得分:4)
此元素是XMLSec的一部分,通常它包含在&lt; KeyInfo&gt;内。 Java 6附带了XMLSec支持,但我怀疑它有解析这个元素的公共接口。
这只是Base64编码的公钥。假设Base64将XML内容解码为字节数组modBytes
和expBytes
。您可以将其转换为JCE密钥,如下所示,
KeyFactory rsaFactory = KeyFactory.getInstance("RSA");
RSAPublicKeySpec rsaKeyspec =
new RSAPublicKeySpec(new BigInteger(modBytes),
new BigInteger(expBytes));
PublicKey key = rsaFactory.generatePublic(rsaKeyspec);