关于在android4.1.x的版本不能启动支付宝问题

异常:Failure calling remote service

异常日志:

INFO/<unknown>(<unknown>): java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
INFO/<unknown>(<unknown>): [ 02-27 10:53:31.985  7899: 7899 W/System.err  ]
INFO/<unknown>(<unknown>):   at org.apache.harmony.xnet.provider.jsse.OpenSSLRSAKeyFactory.engineGeneratePrivate(OpenSSLRSAKeyFactory.java:77)

 

原因:

之前android的版本,只需要用RSA格式就行。android4.1.x之后必须要转化为pck8的格式。

 

还有一种解决方式:

PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(s_privateKeyIn1t);
KeyFactory keyFactory = KeyFactory.getInstance("RSA", "BC");  加上“BC”。 测试了一下也可以。
PrivateKey privateKey = keyFactory.generatePrivate(privSpec);

 

 

 

 

posted on 2013-11-21 17:27  潜心止水  阅读(2231)  评论(0编辑  收藏  举报