gpt4 book ai didi

android - 使用空 InputStream 和密码加载 keystore ?

转载 作者:行者123 更新时间:2023-11-30 03:55:54 25 4
gpt4 key购买 nike

我遇到(继承)了以下代码:

String ksType = KeyStore.getDefaultType();
KeyStore ks = KeyStore.getInstance(ksType);
ks.load(null, null);
SSLSocketFactory sockFactory = new SSLSocketFactory(ks);

我对 KeyStore load 方法的调用感到困惑。此代码使用什么 keystore ?我查看了 KeyStore 文档,据我所知这是合法的。

但是,代码不起作用。该应用程序采用一个 URL 供服务器连接。该应用程序抛出 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate 错误 - 即使站点具有有效的 SSL 证书。

调试,我添加了以下行:

Log.v(TAG,"ks has " + String.valueOf(ks.size()) + " entries.");

获取 keystore 中的项目数。它返回零。

我觉得我对 KeyStores 有一些严重的误解。

这段代码应该有效吗?它应该做什么?

编辑根据代码的使用方式(对网站进行身份验证),我认为它被用作信任库,而不是 keystore 。从 org.apache.http.conn.ssl 使用的 SSLSocketFactory。查看应用程序的资源,应用程序中似乎没有包含 keystore 文件。令我费解。

最佳答案

如果它被用作 keystore ,它可能会起作用,但“null”也会起作用。如果它被用作信任库,它就不会工作。你能发布被调用的 SSLSocketFactory 的构造函数吗?

编辑:任何 SSL 客户端都需要一个非空的信任库来确保安全。 Java 提供的一个足以满足大多数目的。

关于android - 使用空 InputStream 和密码加载 keystore ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368209/

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