调用支付宝接口开发遇到的错误

核能气质少年 提交于 2019-12-09 09:30:15

转载于:http://nassir.iteye.com/blog/1853150

用openssl 生成的密钥老是报以下错误:

Java代码  

  1. java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : DER input, Integer tag error  
  2.     at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:200)  
  3.     at java.security.KeyFactory.generatePrivate(KeyFactory.java:342)  
  4.     at com.qhx.component.payment.payplatform.alipay.util.RSASignature.getPrivateKey(RSASignature.java:84)  
  5.     at com.qhx.component.payment.payplatform.alipay.util.RSASignature.main(RSASignature.java:161)  
  6. Caused by: java.security.InvalidKeyException: IOException : DER input, Integer tag error  
  7.     at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:344)  
  8.     at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:350)  
  9.     at sun.security.rsa.RSAPrivateCrtKeyImpl.<init>(RSAPrivateCrtKeyImpl.java:74)  
  10.     at sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(RSAPrivateCrtKeyImpl.java:58)  
  11.     at sun.security.rsa.RSAKeyFactory.generatePrivate(RSAKeyFactory.java:299)  
  12.     at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:196)  
  13.     ... 3 more  

后来发现,原来是支付宝,生成的命令有问题,参数放错位置,害死人。

 



 

 

 将(3) 的命令改为:

openssl pkcs8 -topk8 -nocrypt -inform PEM -in rsa_private_key.pem -outform PEM outform

 

完整命令:

1.

openssl genrsa -out rsa_private_key.pem 1024

2.

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 

 

3.openssl pkcs8 -topk8 -nocrypt -inform PEM -in rsa_private_key.pem -outform PEM outform

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!