【发布时间】:2021-07-14 06:56:09
【问题描述】:
我有一个 RSA 私钥 .der 文件(里面有一堆二进制文件)。如何在 Java 中将文件转换为 PEM 格式?
如果我要在命令行中使用 openssl,我会这样做:
openssl rsa -inform der -in privateKey.der -outform pem -out privateKey.pem
privateKey.pem 结果如下所示:
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAyljm4IGV2JmL8amyTQz9nCSdtdJV+OGiiyefJasKuNEIVAyV
BzSNEUrJYL1LrAMM0cbenWh3M0I+RoQYfwo3J88fi/aLW5dbdU8bi001UZIeJnEB
...
...
lykp1jNHSXD8PoBNVD+pbY3zGCqH1OgPWd0/+IbMBp3Qo+HMp5Ku9w==
-----END RSA PRIVATE KEY-----
我听说人们说 PEM 只是 DER 的 Base64 编码表示加上某些页眉和页脚。但是,如果我只是这样做
cat privateKey.der | base64
openssl 给我的结果不同:
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDKWObggZXYmYvxqbJNDP2 ... ... GndCj4cynkq73
尽管有页眉和页脚,但 PEM 字符串也不相同。有谁知道为什么?
有没有像 openssl 那样在 Java 中将 DER 转换为 PEM 的库?一直在寻找一段时间,但不幸的是,我没有找到任何有效的方法。任何帮助将不胜感激!
【问题讨论】:
标签: java rsa private-key pem der