我必须连接到一个记录不太好的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会更容易吗(因为这可以替代模数/指数)?