收藏
回答

java.io.IOException: Short read of DER length?什么毛病

1、参考解决方案:

需要替换jre\lib\security目录下的两个jar包,US_export_policy.jar和local_policy.jar,从Oracle官方网站查找jce_policy-8.zip直接点击文中附件(包含了JDK1.6,JDK1.7,JDK1.8),替换本地的jre\lib\security目录下这两个JAR包

2、检查证书是否正确


这两个方案都已经试过了,还是报同样的错误,脑壳疼了,各位同学给点思路



回答关注问题邀请回答
收藏

6 个回答

  • GCMG
    GCMG
    2020-10-23
    char[] password = config.getMchID().toCharArray();
    InputStream certStream = config.getCertStream();
    KeyStore ks = KeyStore.getInstance("PKCS12");
    ks.load(certStream, password);
    

    我猜想你们是否是使用了同一个inputstream执行了多次keyStore.load(in, password),必须每次使用一个新的inputstream

    2020-10-23
    有用 1
    回复 1
  • 流浪王
    流浪王
    2022-04-13

    你们检查下代码有没有调用certStream.read(certData)这代码,官方提供的有这一行代码,去掉即可。不要读取文件流的任何内容导致文件指针偏移!否则java.security框架再去读取时,肯定会出错的。

    2022-04-13
    有用
    回复
  • 星晨
    星晨
    2021-04-16

    解决了吗?

    2021-04-16
    有用
    回复
  • Gitcat
    Gitcat
    2021-02-04

    清理下缓存就好了 有用请留言

    2021-02-04
    有用
    回复
  • xz
    xz
    2020-10-11

    解决了吗?

    2020-10-11
    有用
    回复
  • 微信支付技术助手8
    微信支付技术助手8
    2020-06-23

    你好,你这是在调用什么API报得错误。麻烦详细说明一下。谢谢。

    2020-06-23
    有用
    回复 11
    • Veigar
      Veigar
      2020-06-23
      微信退款接口

      KeyStore keyStore = KeyStore.getInstance("PKCS12");
              keyStore.load(instream, mch_id.toCharArray());
      2020-06-23
      回复
    • Veigar
      Veigar
      2020-06-23
      读取.p12流时报错
      2020-06-23
      回复
    • Veigar
      Veigar
      2020-06-23
      2020-06-23
      回复
    • Veigar
      Veigar
      2020-06-23
      keyStore.load(instream, mch_id.toCharArray()); 这里报错
      2020-06-23
      回复
    • Veigar
      Veigar
      2020-06-24
      能否协助看下
      2020-06-24
      回复
    查看更多(6)
登录 后发表内容
问题标签