为什么将pkcs8密钥从pem转换为der时需要密码

时间:2019-01-14 17:21:25

标签: openssl cryptography pem pkcs#8 asn1

因为pem只是der的base64编码。为什么从一种编码转换为另一种编码时需要密码? 如果我在Java中用字节数组中的代码读取证书(删除了封装边界)并将该字节数组写入文件,那不是der文件吗? 我试过了,但是没有用。

我正在使用带有AES256的pkcs8密码保护密钥

1 个答案:

答案 0 :(得分:2)

不能进行转换的答案可能是因为DER编码文件同时包含内部和外部PKCS#8结构。内部结构定义了包装的密钥和包装的密钥本身。这就是被加密的部分。

外部结构定义用于导出包装密钥和包装算法的协议。如果您采用PEM格式的结构,则可能是PEM标头行定义了算法,而base 64编码的结构仅包含内部PKCS#8结构上的密文。

不过,只要不更改加密格式和盐,就应该有可能保持内部结构完整。如果要求输入密码,可能是由于两个原因:

  1. 仅仅是因为它更容易,因为包装和展开的功能已经完整存在;
  2. 更改盐或IV,以便相同的换行密钥仍将生成不同的密文(不可能看到相同的密钥被换行了)。
相关问题