java 生成der_java – 我们如何将字符串从PEM转换为DER格式

从以下格式发送字符串:

-----BEGIN RSA PUBLIC KEY-----

MIGHAoGBANAahj75ZIz9nXqW2H83nGcUao4wNyYZ9Z1kiNTUYQl7ob/RBmDzs5rY

mUahXAg0qyS7+a55eU/csShf5ATGzAXv+DDPcz8HrSTcHMEFpuyYooX6PrIZ07Ma

XtsJ2J4mhlySI5uOZVRDoaFY53MPQx5gud2quDz759IN/0gnDEEVAgED

-----END RSA PUBLIC KEY-----

如何从此字符串构造PublicKey对象?

试过以下

删除页眉和页脚,base64解码缓冲区

public static PublicKey getFromString(String keystr) throws Exception

{

//String S1= asciiToHex(keystr);

byte[] keyBytes = new sun.misc.BASE64Decoder().decodeBuffer(keystr);

X509EncodedKeySpec spec =

new X509EncodedKeySpec(keyBytes);

KeyFactory kf = KeyFactory.getInstance("RSA");

return kf.generatePublic(spec);

}

这可能会作为无效的密钥格式失败,也会失败

java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException: algid parse error, not a sequence

at sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:188)

at java.security.KeyFactory.generatePublic(KeyFactory.java:304)

at PublicKeyReader.getFromString(PublicKeyReader.java:30)

at Tst.main(Tst.java:36)

密钥是通过openSSL PEM_write_bio_RSAPublicKey(bio,rsa)的API生成的;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值