从XML文件中读取Java中的RSAPublicKey

时间:2009-09-29 11:44:37

标签: java .net xml-signature

如何从xml文件中读取Java中的RSA公钥?

这是文件格式。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<RSAKeyValue>
    <Modulus>jWa96uXeSM6hUH0E/ueihtuowdte8</Modulus>
    <Exponent>BAAQ</Exponent>
</RSAKeyValue>

1 个答案:

答案 0 :(得分:4)

此元素是XMLSec的一部分,通常它包含在&lt; KeyInfo&gt;内。 Java 6附带了XMLSec支持,但我怀疑它有解析这个元素的公共接口。

这只是Base64编码的公钥。假设Base64将XML内容解码为字节数组modBytesexpBytes。您可以将其转换为JCE密钥,如下所示,

     KeyFactory rsaFactory = KeyFactory.getInstance("RSA");
     RSAPublicKeySpec rsaKeyspec =
        new RSAPublicKeySpec(new BigInteger(modBytes),
           new BigInteger(expBytes));
     PublicKey key = rsaFactory.generatePublic(rsaKeyspec);