首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PEM到PrivateKey

PEM到PrivateKey
EN

Stack Overflow用户
提问于 2017-12-31 16:58:19
回答 1查看 2.7K关注 0票数 3

我需要将内存中PEM格式的RSA私钥转换为安卓上的PrivateKey

这个问题似乎已经解决了,for public keys,但我正在努力让它为一个私钥工作。我正在尝试以下代码:

代码语言:javascript
复制
String pemkey = "MIICWwIBAAKBgQDIuL0SzG1+wgyaoyDyHvYIaG10ePXBHqaKTnYyZfY5RzaEFLE/vBdFN2Di7AMH3/5iN/YFQqLsVjKqzX3E3LM2dJOZ9qSWeYArSyQPbhy0eM/3amwchvtLvhVLm2UqVFLjiPGlyYX3D75ETD5tmgulAc5ZDRtGqYVoLKPmZ0USPwIDAQABAoGAErfDjf65UUJISZ1fw6Rmfic62csz47P3hNtHQ3Dlsra020FQvChOpTpCUzb+G1xkjQU58Iijx9VL+Uiba2HHZmiJX2LgS3KKqKFZKmbKZnZQTiw+2o+4AXhtcAYfSAJE9TgRPEhwhZmzV2cvfUk5AjnOghSn2gGjdD1g4xtH22ECQQD/ZbfEd2HEGqHf6j/AVMW+N/Q1xtYIB8r0CWxF6cNw5iq/8Ce9ujpnAFi0vgtojyKDlgwBp4XMU2C4is49EkFhAkEAyTH96mS8dExAAmi3Mm2seUIEOtKwuLD6BEECecPyZSIOd24tfNbmA7Ri6MpGjyLZoNoJQ0AJGcnWU1tnc8bXnwJAS+jYyP1OwrHDwUDnt+u6ZoJNBJrXzMU8LnKKivEjFPBkbm4b8cljSHAS7Y266FX6xS+Y2/kFzKhPjCo9iGtfoQJAOv39hYyj9TWmTw6FKLQfri49L0I3ru+1Xynwn+NkX2Ls+vfDPqeEKfHqTneA2NdPGGrV7HIKORWFUkuqubfD4QJAK60RuhDSeH+ZljcYLhbHLoTnja/uTcvDAd0M4ll2HUNId4jPbYl1qw7OQwfg8apKmGwp7HGW50o/EItvvJrR7w==";
byte[] encoded = Base64.decode(pemkey, Base64.DEFAULT);
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(encoded);
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey sessionkey = kf.generatePrivate(keySpec);

(钥匙与我的比特币钱包不一样,所以不要费心^^)

最后一行给出了错误

代码语言:javascript
复制
java.security.spec.InvalidKeySpecException:
        Must use RSAPublicKeySpec or PKCS8EncodedKeySpec;
        was java.security.spec.X509EncodedKeySpec

我对pemkey字符串进行了测试,使其在其他语言(例如Python )中是正常的,并且运行良好。

编辑:

关于一条评论的建议(以及这个问题的答案是双份的),我也尝试用X509EncodedKeySpec代替PKCS8EncodedKeySpec。那么我得到的新错误是

代码语言:javascript
复制
java.security.spec.InvalidKeySpecException:
        java.lang.RuntimeException:
        error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-01 01:00:31

多亏了Greggz和James的评论,我才能让它开始工作。有两个问题:

  • X509EncodedKeySpec必须被PKCS8EncodedKeySpec取代
  • 提供的pemkey是PKCS#1 (由'BEGIN RSA私钥‘识别),但需要是PKCS#8 (由'BEGIN私钥’识别)。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48044310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档