登录
首页 >  Golang >  Go问答

尝试读取加密私钥时出现“块中没有 DEK-Info 标头”

来源:Golang技术栈

时间:2023-04-07 08:19:59 490浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《尝试读取加密私钥时出现“块中没有 DEK-Info 标头”》,聊聊golang,希望可以帮助到正在努力赚钱的你。

问题内容

我正在尝试读取加密的 PKCS8 私钥文件。我生成了这样的密钥:

openssl genrsa -out file.pem -passout pass:file -aes256 1024
openssl pkcs8 -topk8 -inform pem -in file.pem -outform pem -out filePKCS8.pem

我尝试以这种方式在 Go 中阅读它:

block, _ := pem.Decode(key)
return x509.DecryptPEMBlock(block, password)

但我收到一条错误消息:

x509: no DEK-Info header in block

但是,我无法弄清楚出了什么问题。我是生成错误的密钥还是使用了错误的库?我看到专门用于读取未加密 PKCS8 文件的库,但没有专门用于读取加密 PKCS8 文件的库。

有人有什么主意吗?

正确答案

Go 没有解密标准库中的 PKCS8 密钥的功能。

你可以这个包: https ://github.com/youmark/pkcs8/blob/master/pkcs8.go#L103

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表