如何从base 64编码字符串构造java.security.PublicKey对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (256)

我有一个来自外部源(AndroidStore)的bse 64编码字符串公钥,我需要使用它来验证签名的内容。如何将字符串转换为java.security.PublicKey接口的实例。

提问于
用户回答回答于

试试这个

  • base64解码密钥数据以获得一个字节数组(byte [])
  • 使用字节数组创建一个新的X509EncodedKeySpec
  • 使用KeyFactory.getInstance(“RSA”)假设RSA在这里获取KeyFactory的一个实例
  • 使用X509EncodedKeySpec调用generatePublic(KeySpec)方法
  • 结果/应该/是你的使用的公共密钥。
用户回答回答于

上述答案的代码

public static PublicKey getKey(String key){
    try{
        byte[] byteKey = Base64.decode(key.getBytes(), Base64.DEFAULT);
        X509EncodedKeySpec X509publicKey = new X509EncodedKeySpec(byteKey);
        KeyFactory kf = KeyFactory.getInstance("RSA");

        return kf.generatePublic(X509publicKey);
    }
    catch(Exception e){
        e.printStackTrace();
    }

    return null;
}

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励