首頁  >  文章  >  後端開發  >  如何在 Go 中解密加密的 PKCS8 私鑰並修復「區塊中沒有 DEK-Info 標頭」錯誤?

如何在 Go 中解密加密的 PKCS8 私鑰並修復「區塊中沒有 DEK-Info 標頭」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-11-01 09:36:02234瀏覽

How to Decrypt Encrypted PKCS8 Private Keys in Go and Fix the

解密加密的PKCS8 私鑰:解決「區塊中沒有DEK-Info 標頭」錯誤

嘗試讀取加密的PKCS8 Go中的私鑰,你可能會遇到錯誤「x509: no DEK-Info header in block.」此錯誤是由Go 標準庫內的固有限制引起的,該庫缺乏解密加密PKCS8 密鑰的功能。

解決問題

確保您不會產生金鑰不正確,請驗證您的OpenSSL 指令是否如下:

  1. 生成私鑰:

    openssl genrsa -out file.pem -passout pass:file -aes256 1024
  2. 轉換為PKCS8 格式:

    openssl pkcs8 -topk8 -inform pem -in file.pem -outform pem -out filePKCS8.pem

替代解決方案

雖然Go 標準庫不提供對解密加密PKCS8 密鑰的直接支持,但您可以使用外部套件例如:

  • github.com/youmark/pkcs8

此套件提供了專門設計用於解密加密PKCS8 金鑰的函數:

func DecryptPrivateKey(block *pem.Block, password []byte) (priv interface{}, err error)

透過使用此套件,您可以克服Go標準庫的限制,成功解密加密的PKCS8私鑰。

以上是如何在 Go 中解密加密的 PKCS8 私鑰並修復「區塊中沒有 DEK-Info 標頭」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn