当前位置: 首页 > 面试题库 >

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

窦宏旷
2023-03-14
问题内容

我正在尝试读取加密的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



 类似资料:
  • 我想在我的项目上使用RSA/AES文件加密。我用rsa做了一对私钥/公钥和一个AES密钥,然后用公钥加密AES密钥。最后用私有RSA密钥对AES加密密钥进行解密。

  • 我在使用Java Bouncycastle的客户机和使用Python RSA库的密钥服务器之间交换私钥时遇到了困难。PEM格式用于通过REST传输密钥。keyserver无法解密我提供的密钥(加密密码更改时需要),它需要PKCS#1或PKCS#8密钥和PEM,如下所示: 但是BouncyCastle的输出(使用JCEpeEncryptorBuilder和JcaMiscPEMGenerator)的起

  • 致命异常:main java.lang.RuntimeException:无法启动活动组件Info{com.example.increative/com.example.increve.comments}:java.lang.nullpointerException 1at android.app.activitythread.performLaunchActivity(activitythrea

  • 我已经在Java中设置了公钥和私钥加密,并分发了两个用户的公钥(通信是在两个用户之间)。我现在希望用户交换一个对称密钥。我应该做的: 用户A生成密钥。 用户A用他的私钥加密密钥,然后用B的公钥加密。 用户A发送加密密钥。 用户B接收加密密钥。 用户B先用他的私钥解密密钥,然后用A的公钥解密密钥。 用户A生成密钥的我的代码: 第8行抛出以下错误: 非常感谢任何帮助。多谢了。

  • 我试图读取xsd文件以验证模式。 我的架构位于位置 我的类读取这个文件也在< code > x/y/z/read schema . Java 中 它们都装在我的罐子里。 我试图在中读取这个文件,如下所示,其中名称是但url返回为null? 我做错什么了吗?

  • 问题内容: 我正在尝试使用RSA私钥加密某些内容。 我遵循以下示例:http : //www.junkheap.net/content/public_key_encryption_java, 但将其转换为使用私钥而不是公共密钥。遵循该示例,我认为我需要做的是: 读取DER格式的私钥 生成PCKS8EncodedKeySpec 从KeyFactory调用generatePrivate()获得一个私钥