gpt4 book ai didi

java - 如何在 Java 中将 pkcs8 转换为 pkcs12

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

我知道这可以通过 openssl 实现。但我想知道是否有使用任何库在 Java 中转换 PKCS 的可能性(pkcs8 到 12)。

最佳答案

首先,您将 PKCS#8 编码的 key 作为文件读取并创建 PrivateKey 对象

public PrivateKey loadPrivateKey(String keyFile)
throws Exception {

File f = new File(keyFile);
FileInputStream fis = new FileInputStream(f);
DataInputStream dis = new DataInputStream(fis);
byte[] keyBytes = new byte[(int) f.length()];
dis.readFully(keyBytes);
dis.close();
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
return kf.generatePrivate(spec);
}

然后这个 key 被保存到 PKCS#12 keystore 中

public void createKeyStore(String keyStorePwd, String keyStoreFile,
PrivateKey privateKey, X509Certificate certificate)
throws Exception {

char[] pwd = keyStorePwd.toCharArray();

KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(null, pwd);

KeyStore.ProtectionParameter protParam =
new KeyStore.PasswordProtection(pwd);
Certificate[] certChain =
new Certificate[]{ certificate };
KeyStore.PrivateKeyEntry pkEntry =
new KeyStore.PrivateKeyEntry(privateKey, certChain);
ks.setEntry("keypair", pkEntry, protParam);

FileOutputStream fos = new FileOutputStream(keyStoreFile);
ks.store(fos, pwd);
fos.close();
}

关于java - 如何在 Java 中将 pkcs8 转换为 pkcs12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21832338/

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