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