ホームページ  >  記事  >  バックエンド開発  >  Go で暗号化された PKCS8 キーを復号する方法: 「ブロックに DEK-Info ヘッダーがありません」エラーの解決策?

Go で暗号化された PKCS8 キーを復号する方法: 「ブロックに DEK-Info ヘッダーがありません」エラーの解決策?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-02 07:56:29985ブラウズ

How to Decrypt Encrypted PKCS8 Keys in Go:

Go: 暗号化された PKCS8 キーの復号中に「ブロックに DEK-Info ヘッダーがありません」エラー

暗号化された PKCS8 秘密キーを復号しようとしたときGo では、「x509: no DEK-Info header in block」というエラー メッセージが表示される場合があります。このエラーは、提供されたブロックに、キーの復号化に不可欠な必要な 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 キーを復号化します。最初のパラメータはエンコードされたキー データであり、2 番目のパラメータはキーの暗号化に使用されるパスワードです。

以上がGo で暗号化された PKCS8 キーを復号する方法: 「ブロックに DEK-Info ヘッダーがありません」エラーの解決策?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。