gpt4 book ai didi

java - 无法从证书中找到私钥

转载 作者:行者123 更新时间:2023-12-02 07:56:11 25 4
gpt4 key购买 nike

我们正在使用小程序进行加密解密。我们发现数字证书存在一些意外问题。一个系统有证书,我们无法从该证书中找到私钥,但通过再次安装相同的证书就可以正常工作。

Java Plug-in 10.25.2.17
Using JRE version 1.7.0_25-b17 Java HotSpot(TM) 64-Bit Server VM
User home directory = C:\Users\admin

要访问私钥,我们使用以下代码。

private PrivateKey getPrivateKeyFromKeyStore(String pubkey, KeyStore browser) {
PrivateKey privateKey = null;
String pubKey1 = "";
if (browser != null) {
try {
Field spiField = KeyStore.class.getDeclaredField("keyStoreSpi");
spiField.setAccessible(true);
KeyStoreSpi spi = (KeyStoreSpi) spiField.get(browser);
Field entriesField = spi.getClass().getSuperclass().getDeclaredField("entries");
entriesField.setAccessible(true);
@SuppressWarnings("rawtypes")
Collection entries = (Collection) entriesField.get(spi);
for (Object entry : entries) {
String alias = (String) invokeGetter(entry, "getAlias");
X509Certificate[] certificateChain = (X509Certificate[]) invokeGetter(entry, "getCertificateChain");
for (X509Certificate current : certificateChain) {
pubKey1 = this.bASE64Encoder.encode(current.getPublicKey().getEncoded());
if (pubkey.equals(pubKey1) && !pubkey.equals("")) {
privateKey = (PrivateKey) invokeGetter(entry, "getPrivateKey");
return privateKey;
}
}
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
return privateKey;
}

最佳答案

您不会在证书中找到私钥,因为它必须位于您的 keystore 中,当然,如果您使用 CSR 生成证书的话。 :)

作为提示,我可能会问证书是否已过期?

无论如何,问题很不清楚:(如果您有证书,您必须拥有用于签署您的应用程序的 keystore ...最好提供更多详细信息...

关于java - 无法从证书中找到私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18377564/

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