将模数+指数转换为PublicKey

时间:2018-02-20 08:13:49

标签: java kotlin rsa

我必须连接到一个记录不太好的API,似乎它的提供商并不急于更新它。其中一个端点是返回用于加密会话密码的公钥的模数/指数。

格式如下:

"key" : {
  "modulus" : "udDX3BH5xUSmc94Q6aUlu2Z0i2Vi1gIGkeFW3B1c",
  "exponent" : "AQAB"
}

我尝试从中获取PublicKey是:

fun toRsa() : PublicKey {
    val modulusBytes = Base64.decode(modulus, Base64.DEFAULT)
    val exponentBytes = Base64.decode(exponent, Base64.DEFAULT)
    val e = BigInteger(1, exponentBytes)
    val m = BigInteger(1, modulusBytes)

    val spec = RSAPublicKeySpec(m, e)
    val factory = KeyFactory.getInstance("RSA")
    return factory.generatePublic(spec)
}

不幸的是,上述方法并未返回此API所期望的密钥。解码这个模数/指数的任何其他想法?从BASE64_PEM获取PublicKey会更容易吗(因为这可以替代模数/指数)?

0 个答案:

没有答案
相关问题