Go:“No DEK-Info header in block”解密加密的 PKCS8 密钥时出错
尝试解密加密的 PKCS8 私钥时在 Go 中,您可能会遇到一条错误消息,指出“x509:块中没有 DEK-Info 标头”。此错误表明提供的块不包含必要的 DEK-Info 标头,而 DEK-Info 标头对于解密密钥至关重要。
问题在于标准 Go 库没有提供用于解密的本机函数加密的 PKCS8 密钥。为了解决这个问题,您可以利用第三方库或自定义代码。
这里有一个可以处理加密 PKCS8 文件的合适库:https://github.com/youmark/pkcs8/blob/master/pkcs8。 go#L103
通过将 pkcs8 包合并到您的代码中,您可以使用以下代码片段成功解密加密的 PKCS8 私钥:
<code class="go">import "github.com/youmark/pkcs8" func DecryptPKCS8Key(key []byte, password string) ([]byte, error) { block, _ := pem.Decode(key) return pkcs8.Decrypt(block.Bytes, []byte(password)) }</code>
此代码片段使用来自pkcs8 包用于解密加密的 PKCS8 密钥。第一个参数是编码后的密钥数据,第二个参数是用于加密密钥的密码。
以上是如何在 Go 中解密加密的 PKCS8 密钥:'块中没有 DEK-Info 标头”错误解决方案?的详细内容。更多信息请关注PHP中文网其他相关文章!