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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 10:51:29477ブラウズ

How to Decrypt Encrypted PKCS8 Private Keys in Go: Solving the

暗号化された PKCS8 秘密キーの「ブロックに DEK-Info ヘッダーがありません」エラーを解決する

次を使用して暗号化された PKCS8 秘密キーをデコードしようとすると「ブロックに DEK-Info ヘッダーがありません」というエラーが発生する場合があります。これは、キーのデコード機能が暗号化された PKCS8 秘密キーを処理できないことを示しています。

提供された OpenSSL コマンドを使用したキーの生成は正しいようです。ただし、Go の標準ライブラリは、暗号化された PKCS8 秘密鍵の復号化をネイティブにサポートしていません。

解決策:

この問題を解決するには、処理用に特別に設計された外部ライブラリを利用できます。 PKCS8 キーの復号化。このようなライブラリの例としては、GitHub で入手可能な「pkcs8」ライブラリがあります。

「pkcs8」ライブラリを使用して PKCS8 キーを復号化する次のコードがあるとします。

<code class="go">import "github.com/youmark/pkcs8"

func DecryptPKCS8(key []byte, password string) (*pkcs8.PrivateKey, error) {
    block, _ := pem.Decode(key)
    return pkcs8.Decrypt(block.Bytes, []byte(password))
}</code>

この関数は、バイト スライスの形式で暗号化された PKCS8 キーと復号化パスワードを引数として受け取ります。次に、暗号化されたキー データを含む PEM ブロックの復号化を試みます。

復号化が成功すると、関数は「pkcs8」ライブラリから Decrypt 関数を呼び出して実際の復号化を実行します。復号化されたキーは *pkcs8.PrivateKey 構造体として返されます。

このライブラリを組み込み、DecryptPKCS8 関数を使用して暗号化された PKCS8 キーを処理することにより、「ブロックに DEK-Info ヘッダーがありません」エラーを解決できます。

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

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