gpt4 book ai didi

java - 将 .der 文件中的私钥导出为 PKCS#1

转载 作者:太空宇宙 更新时间:2023-11-04 15:20:25 25 4
gpt4 key购买 nike

我正在编写一个java代码来生成 key 并将它们保存在文件中,我正在使用BouncyCaSTLe库使用pemwriter将私钥写入.pem文件(如果它在PKCS#1中)并使用常规 FileOutputStream 将其导出到 PKCS#8。

现在,当导出到 DER 时,尝试将其导出到 PKCS#1 时就会出现问题。

我搜索了很多,但找不到合适的方法来编码 PKCS#1 中的私钥或将 java 私钥 (PKCS#8) 的常规编码转换为 PKCS#1,或者您是否可以指导我转换 PrivateKeyRSAPrivateKeyDSAPrivateKeyECPrivateKey。这是我要导出的代码片段

        JcePEMEncryptorBuilder builder = new JcePEMEncryptorBuilder("DES-EDE3-CBC");
PEMEncryptor enc = builder.build(password);

FileOutputStream fis = new FileOutputStream(new File(privatekey.der));
if (isPKCS8) {
if (!encrypt) {
fis.write(privateKeyBytes);
} else {
fis.write(enc.encrypt(privateKeyBytes));
}
fis.flush();
fis.close();

其中 privateKeyBytes 是 PrivateKey.getEncoded() 返回的字节。 它们位于 PKCS#8 中,如果我可以将 PrivateKey 转换为 RSAPrivateKey 或 DSAPrivateKey,它们代表 PKCS# 中的私钥1格式

最佳答案

显然您可以使用类型信息并执行类转换

   PrivateKey privKey = ...;
if (privKey instance of RSAPrivateKey) {
RSAPrivateKey rsaPrivKey = (RSAPrivateKey)privKey;
if (privKey instance of DSAPrivateKey) {
DSAPrivateKey dsaPrivKey = (DSAPrivateKey)privKey;
if (privKey instance of ECPrivateKey) {
ECPrivateKey ecPrivKey = (ECPrivateKey)privKey;
}

关于java - 将 .der 文件中的私钥导出为 PKCS#1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20451728/

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