解密加密的 PKCS8 私钥:解决“块中没有 DEK-Info 标头”错误
尝试读取加密的 PKCS8 Go 中的私钥,你可能会遇到错误“x509: no DEK-Info header in block.”此错误是由 Go 标准库内的固有限制引起的,该库缺乏解密加密 PKCS8 密钥的功能。
解决问题
确保您不会生成密钥不正确,请验证您的 OpenSSL 命令是否如下:
生成私钥:
openssl genrsa -out file.pem -passout pass:file -aes256 1024
转换为 PKCS8 格式:
openssl pkcs8 -topk8 -inform pem -in file.pem -outform pem -out filePKCS8.pem
替代解决方案
虽然 Go 标准库不提供对解密加密 PKCS8 密钥的直接支持,但您可以使用外部包例如:
此包提供了专门设计用于解密加密 PKCS8 密钥的函数:
func DecryptPrivateKey(block *pem.Block, password []byte) (priv interface{}, err error)
通过使用此包,您可以克服Go标准库的限制,成功解密加密的PKCS8私钥。
以上是如何在 Go 中解密加密的 PKCS8 私钥并修复“块中没有 DEK-Info 标头”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!