ホームページ > バックエンド開発 > Golang > Go で RSA キーを安全に保存およびロードするにはどうすればよいですか?

Go で RSA キーを安全に保存およびロードするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-10 05:46:18
オリジナル
514 人が閲覧しました

How to Securely Save and Load RSA Keys in Go?

Go での RSA 公開鍵と秘密鍵の保存と読み込み

質問:

どうすればよいですかcrypto/rsa パッケージを使用して、RSA の公開キーと秘密キーを安全に永続化し、ディスクとの間でロードします。 Go では?

答え:

RSA 秘密キーを保存するには、crypto/x509 パッケージの MarshalPKCS1PrivateKey 関数の使用を検討してください:

func MarshalPKCS1PrivateKey(key *rsa.PrivateKey) []byte
ログイン後にコピー

この関数は秘密キーを DER (Distinguished Encoding Rules) 形式に変換します。バイト配列として保存できます。 DER から秘密キーをロードするには、ParsePKCS1PrivateKey 関数を使用します。

func ParsePKCS1PrivateKey(der []byte) (key *rsa.PrivateKey, err error)
ログイン後にコピー

公開キーの場合、MarshalPKCS1PublicKey 関数と ParsePKCS1PublicKey 関数は同様の目的を果たします。

標準形式の PEM エンコーディング:

保存する代わりにDER でエンコードされたバイナリ データを直接変換する場合は、秘密キーを PEM (Privacy-Enhanced Mail) ファイルにエンコードするのが一般的です。 PEM は、Base64 を使用してバイナリ データをエンコードし、ファイルにヘッダーとフッターを追加します。秘密キーをエンコードするには、pem.EncodeToMemory 関数を使用します。

pemdata := pem.EncodeToMemory(
    &pem.Block{
        Type: "RSA PRIVATE KEY",
        Bytes: x509.MarshalPKCS1PrivateKey(key),
    },
)
ログイン後にコピー

PEM エンコードは、キーを交換するための標準化された形式を提供し、その処理を簡素化します。

以上がGo で RSA キーを安全に保存およびロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート