暗号化された 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 サイトの他の関連記事を参照してください。