Go による RSA キーの生成: Openssl genrsa の複製
OpenSSL コマンド openssl genrsa -out $1.rsa $2 は RSA キー ペアを生成し、これらを 2 つの別個のファイル (秘密キーの $1.rsa と、公開キーの $1.rsa.pub。 Go では、このプロセスには以下が含まれます:
次のコードは、このプロセスを示しています。
package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "io/ioutil" ) func main() { filename := "key" bitSize := 4096 key, err := rsa.GenerateKey(rand.Reader, bitSize) if err != nil { panic(err) } pub := key.Public() keyPEM := pem.EncodeToMemory( &pem.Block{ Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key), }, ) pubPEM := pem.EncodeToMemory( &pem.Block{ Type: "RSA PUBLIC KEY", Bytes: x509.MarshalPKCS1PublicKey(pub.(*rsa.PublicKey)), }, ) if err := ioutil.WriteFile(filename+".rsa", keyPEM, 0700); err != nil { panic(err) } if err := ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755); err != nil { panic(err) } }
このコードは、秘密鍵ファイル key.rsa と公開鍵ファイル key.rsa.pub を生成します。これらのファイルの内容は、OpenSSL コマンドの出力に似ています。
以上がOpenSSL の「genrsa」コマンドを模倣して、Go で RSA キー ペアを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。