ホームページ  >  記事  >  バックエンド開発  >  Go で暗号化された PKCS8 秘密キーを復号する方法: 「No DEK-Info Header」エラーの解決

Go で暗号化された PKCS8 秘密キーを復号する方法: 「No DEK-Info Header」エラーの解決

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 08:25:17156ブラウズ

How to Decrypt Encrypted PKCS8 Private Keys in Go: Solving the 'No DEK-Info Header' Error

「Go での暗号化された PKCS8 秘密鍵の復号化: 「DEK-Info ヘッダーがない」問題の解決」

暗号化における秘密鍵の保護重要です。暗号化された秘密キーを保存するための一般的な形式の 1 つは PKCS8 です。 Go でそのようなキーを読み取ろうとすると、「ブロックに 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"
    "golang.org/x/crypto/pkcs12"
)

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

このコードでは、「pkcs8」パッケージの DecryptPrivateKey 関数を利用して、指定されたパスワードを使用してキーを復号化します。復号化されたキーは PrivateKey インスタンスとして返されます。

このソリューションを統合することで、開発者は Go で暗号化された PKCS8 秘密キーを効率的に読み取り、復号化し、暗号化されたデータへの安全なアクセスを確保できます。

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

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