我试图找出如何将私钥从X509Certificate实例导出为PEM字符串编码。
import org.bouncycastle.jce.provider.BouncyCastleProvider
import org.bouncycastle.openssl.jcajce.JcaPEMWriter
import java.io.StringWriter
import java.security.KeyPairGenerator
import java.security.Security
import java.security.spec.ECGenParameterSpec
fun main(args: Array<String>) {
Security.addProvider(BouncyCastleProvider())
val kpGen = KeyPairGenerator.getInstance("EC", "BC")
kpGen.initialize(ECGenParameterSpec("P-256"))
val keyPair = kpGen.generateKeyPair()
val cert = SelfSignedCertGenerator().generate(keyPair, "SHA512WithECDSA", "localhost", 730)
val sw = StringWriter()
JcaPEMWriter(sw).use { jpw ->
jpw.writeObject(cert)
}
println(sw.toString())
}
输出显示预期结果:
-----BEGIN CERTIFICATE-----
MIIBcDCCARWgAwIBAgIGAYHjRWOUMAoGCCqGSM49BAMEMBQxEjAQBgNVBAMMCWxv
Y2FsaG9zdDAeFw0yMjA3MDkxNDAzMDRaFw0yNDA3MDgxNDAzMDRaMBQxEjAQBgNV
BAMMCWxvY2FsaG9zdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABF+G+CHHQ56C
AgWN2G9PUemJTNGVdefWWuPVA5Oruepm9yOM69H5tPia0V/BCDlVHQrJ8Q0yC4Fa
uuM3HP42VJ6jUzBRMB0GA1UdDgQWBBTYf15PsEN2DaNaG3YFDL84SgXZvTAfBgNV
HSMEGDAWgBTYf15PsEN2DaNaG3YFDL84SgXZvTAPBgNVHRMBAf8EBTADAQH/MAoG
CCqGSM49BAMEA0kAMEYCIQCr9MrSGW3eimfDodqC6a4nxbusOUQcFz2+DHYFrZTx
AAIhAPRJ70basMDBOBdOQnN2DgxbGSHzsixZ7qajakRTlKKz
-----END CERTIFICATE-----
问题是如何将生成的私钥导出为PEM编码?
只需将您的私钥传递给JcaPEMWriter::WriteObject
:
JcaPEMWriter(sw).use {
w -> w.writeObject(keyPair.private)
}
println(sw.toString())
其中给出:
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIK2XWix+f1aRSh7sH4NSYQeCBsCfOBjFATKiJLnD4UPdoAoGCCqGSM49
AwEHoUQDQgAEIQAArKsROcQ8l2aZUO+a3zm+03+a9ToTrpE+Ysi9Pm5+oQoy1Oro
kLiJxihn2rgQFspUuQ0cRdwj8HKo2MsIzQ==
-----END EC PRIVATE KEY-----
我正在编写一个java程序,该程序应该生成私有rsa dsa ec密钥对并导出它们,程序还可以从pem文件中导入密钥。 导入密钥工作得很好,因为我已经使用bouncycastle从文件中读取对象,该文件将是并且以某种方式使用我可以读取加密的密钥。 现在的问题是,我正在尝试将私钥写到文件中,并且它应该被加密,我的问题是: 有没有方法使用类中内置的java或者使用bouncycastle或者我必须加密
问题内容: 因此,我正在使用Spongy Castle(Android)为RSA公钥生成PEM编码的字符串,并将其上传到服务器。这是我目前正在做的: 现在,您可能已经知道,我不确定如何构造或是否有更简单的方法来执行此操作。 当使用Bouncy Case时,我曾经这样做过 但是由于某种原因,海绵城堡中不存在PEMWriter类 问题答案: 好的,这可能不是最聪明的方法(或者也许是?),但是在检查了此
我被指派为其中一个服务器域启用HTTPS。我熟悉标准生成jks文件来生成csr,最后我将给出p7b文件。然而,服务器的IT已经给了我如下所示的证书:- D1668D336843BA22.CRT GD-G2_IIS_Intermediates.P7B D1668D336843BA22.pem “ ” 我运行了以下命令将证书附加到密钥库,但它产生了错误: 命令: keytool-importcert-
我有一个JProfiler快照文件(.jps),它是使用脱机分析创建的。 当我试图使用JPexport脚本导出它时,出现以下错误: /opt/jprofiler9/bin$jpexport ~/test。jps热点~/热点。html加载/home/pavan/test。jps JProfiler尚未初始化。请先运行JProfiler可执行文件 请任何人详细说明这意味着什么,以及需要做什么才能成功地
错误:正在执行热重新加载。。。正在将文件同步到IA Emulator上的设备AOSP。。。在1021ms内重新加载了707个库中的8个。I/flatter(7395):“Future”的实例E/flatter(7395):[ERROR:flatter/lib/ui/ui\u dart\u state.cc(157)]未处理的异常:FileSystemException:无法打开文件,路径=“Fut
我必须创建一个aes-256密钥并将其存储在。pem文件中。我使用创建一个256位的随机密钥。在此之后,我如何将此保存到一个pem文件。我已经研究了在C和openssl pem中读写pem文件的rsa密钥。但我不使用RSA密钥。 我怀疑我的任务要简单得多,比如从base64创建pem,但没有太多帮助。