gpt4 book ai didi

java - 使用充气城堡处理错误的 keystore 密码

转载 作者:行者123 更新时间:2023-12-02 03:08:54 25 4
gpt4 key购买 nike

我正在加载 key 存储,如下所示:

try
{
ks = KeyStore.getInstance("BKS", "BC");
ks.load(ksStream, ksPass);
}
catch (IOException e)
{
if (e.getCause() instanceof UnrecoverableKeyException)
System.err.println("Wrong password!");
}

问题是异常的原因不是由 bouncy caSTLe 设置的(它是 null)。

如何解决这个问题?

最佳答案

无法确定加载 BKS keystore 失败是否是由于密码错误或数据损坏或两者兼而有之造成的。造成这种不确定性的原因是因为BKS格式中没有专门用于测试密码正确性的字段。可用的只是通过 keystore 主体计算的消息身份验证代码 (MAC)。如果 MAC 检查成功,那么您可以确信一切都正确,包括密码。如果 MAC 出现故障,则问题可能是密码或数据损坏,或两者兼而有之。

使用IOException来表达这个问题是一个糟糕的选择,并且可能是Sun工程师原始设计的痕迹。由于 BouncycaSTLe 只是 JCE 框架中的一个引擎,因此它们必须遵守 KeyStore.load() 的签名,包括异常规范。我查看的 BouncycaSTLe 版本在异常中包含一条详细消息“KeyStore 完整性检查失败。”,该异常至少可以识别出异常是由 MAC 故障引起的,而不是实际的 I/O 问题.

关于java - 使用充气城堡处理错误的 keystore 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57005711/

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