gpt4 book ai didi

java - PKCS#12 : DerInputStream. getLength() 异常

转载 作者:太空狗 更新时间:2023-10-29 22:37:51 27 4
gpt4 key购买 nike

我使用 keytool 命令生成证书:

keytool -genkeypair -alias myRSAKey -keyalg RSA -keysize 1024 -keystore test.p12 -storepass test -storetype pkcs12

然后,如果我尝试使用 java 安全 API 加载它,在将文件作为 byte[] 获取之后:

KeyStore ks = KeyStore.getInstance("PKCS12");
try{
ks.load(new ByteArrayInputStream(data), "test".toCharArray())
} catch (Exception e){
...
}

我得到 DerInputStream.getLength(): lengthTag=127, too big 异常。

怎么了?

最佳答案

我有这个问题,我已经搜索了 google 的深处,仍然找不到答案。在与质量糟糕的遗留代码斗争了几天之后,我找到了导致此错误的原因。

KeyStore.load(InputStream is, String pass);

这个方法接受一个 InputStream,如果这个 InputStream 有任何问题,就会抛出这个异常,我遇到的一些问题:

  • InputStream 指向错误/空白/刚刚创建的文件
  • InputStream 已经打开或其他东西正在持有资源
  • InputStream 已经被使用和读取,因此InputStream的下一个字节的位置是结束

最后一个是我的问题的原因。代码从证书创建一个 InputStream,然后在两次 KeyStore.load() 调用中使用它,第一个成功,第二个总是给我这个错误。

关于java - PKCS#12 : DerInputStream. getLength() 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7399154/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com