今天在做支付宝生成订单时需要进行字符串签名。签名的时候报了错:

java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : DER input, Integer tag error

at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:200)

at java.security.KeyFactory.generatePrivate(KeyFactory.java:342)

at com.alipay.util.SignUtils.sign(SignUtils.java:22)

at org.apache.jsp.index_jsp._jspService(index_jsp.java:101)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)

at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327)

at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)

at org.mortbay.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:503)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:326)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)

at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Caused by: java.security.InvalidKeyException: IOException : DER input, Integer tag error

at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:344)

at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:350)

at sun.security.rsa.RSAPrivateCrtKeyImpl.(RSAPrivateCrtKeyImpl.java:74)

at sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(RSAPrivateCrtKeyImpl.java:58)

at sun.security.rsa.RSAKeyFactory.generatePrivate(RSAKeyFactory.java:299)

at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:196)

... 35 more

在签名里的privateKey里纠结了很久。原来这里不只是我先前的rsa_private_key.pem里的内容。而是需要在linux里再次进行pkcs8加密一下,然后取出首位后的内容

执行口令如:openssl pkcs8 -topk8 -nocrypt -inform PEM -in rsa_private_key.pem -outform PEM outform

私钥是图中红框里的内容(记得要去除换行和空格哦。直接replace掉 ):

java der decode_支付宝进行签名时爆DER input, Integer tag error异常相关推荐

  1. java调用R语言传参数时,RserveException: eval failed Syntax error

    首先将执行的source语句如下 source('D:/xxx/xxx/xxx/py/test.R') ,如果有函数,则继续执行如下 myFunc(1,2) //myFunc是R脚本中的方法名,其中参 ...

  2. JAVA实现的支付宝扫描二维码支付

    支付项目采用springMvc+Dubbo架构实现,只对外提供接口 原文地址:http://blog.52itstyle.com/archives/169/ 前期酝酿准备 最近项目中要上线支付功能.前 ...

  3. Android客户端和Java服务器端集成支付宝

    移动端集成支付,似乎是每个App都可能面临的一件事.所有项目都在谈盈利模式,而从C端获取现金流是盈利中最重要的一个途径之一. 当前大家主要采用微信支付和阿里支付集成到自己的移动应用,虽然官方提供一些文 ...

  4. java接入第三方支付宝接口

    注册沙箱账号 到蚂蚁金服注册开发者账号,注册地址:https://open.alipay.com,用你的 支付宝 账号扫码登录,完善个人信息,选择服务类型. 根据情况选择接入方式,我们这里选择自研开发 ...

  5. Java使用RSA加密解密签名及校验

    RSA加密解密类: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; i ...

  6. 使用加密签名时遇到的一个问题

    2019独角兽企业重金招聘Python工程师标准>>> 使用加密签名时遇到的一个问题: com.koalii.svs.SecretStoreException: load pfx f ...

  7. C# 给PDF签名时添加时间戳的2种方法(附VB.NET代码)

    在PDF添加签名时,支持vb.net教程添加可信时间c#教程戳来保证文档的法python基础教程律效应.本文,将通过C#程序代码java基础教程介绍如何添加可sql教程信时间戳,可通过2种方法来实现. ...

  8. Java应用服务系统安全性,签名和验签浅析

    1 前言 随着互联网的普及,分布式服务部署越来越流行,服务之间通信的安全性也是越来越值得关注.这里,笔者把应用与服务之间通信时,进行的的安全性相关,加签与验签,进行了一个简单的记录. 2 安全性痛点 ...

  9. 支付宝java代码_支付宝回调JAVA版代码

    支付宝回调: 1 //这个是支付宝回调的信息 2 @RequestMapping("alipay_callback.do") 3 @ResponseBody 4 public Ob ...

  10. Pytorch 训练与测试时爆显存(cuda out of memory)的终极解决方案,使用cpu(勿喷)

    Pytorch 训练与测试时爆显存(cuda out of memory)的终极解决方案,使用cpu(勿喷) 参见了很多方法,都没有用. 简单点,直接把gpu设成-1

最新文章

  1. C#从SQL server数据库中读取l图片和存入图片
  2. Tensorflow【实战Google深度学习框架】—使用 TensorFlow 实现模型
  3. Spark DataFrameDataSet
  4. 推送改变世界!Push提高用户活跃度的三不原则
  5. 大学计算机基础知识点图文,大学计算机基础知识点超详细总结
  6. Qt4_子类化QMainWindow
  7. win7下添加网络计算机,win7怎么添加网络打印机 win7添加网络打印机步骤【详解】...
  8. 哪些情况会造成小程序违规或下架
  9. NLP自然语言处理CRF详解
  10. 好莱坞大片! 为躲避死亡威胁, 只用15步, 这个密码朋克大叔就从世界消失了......
  11. mysql自定义变量比较大小_MySQL 自定义变量@ 常用案例
  12. java + ffmped + mencoder搭建视频处理平台
  13. 教你如何购买笔记本电池
  14. Qt 画图工具擦除操作,恢复透明色
  15. VIJOS P1351 棋盘制作
  16. 热门商务台式计算机,商务台式机也能如此优雅 ThinkCentre E95z体验
  17. 月末使用期间损益结转
  18. vsftpd配置连接远程linux服务器,ftprush报错:“530 login incorrect ”
  19. AE基础动画参数之制作跳动音符
  20. 几个我听过但不懂的名词

热门文章

  1. 创建Image图像的几种方法
  2. Word分栏出现空白怎么解决
  3. 怎么解决pdf乱码问题呢?
  4. 诚之和:百世离场快递恶战“结束的开始”
  5. Valine魔改教程——添加自定义表情和QQ头像
  6. vscode顶部菜单栏不见了,怎么办?
  7. linux 查找pcre源码,apache源码编译中首先安装pcre的原因
  8. OSChina 周四乱弹 ——Iphone7出了开始做牛做马了
  9. WWW 2022 | 搜索广告CVR延迟反馈建模DEFUSE
  10. Unity网格合并插件MeshBaker的简单使用