Openssl と同じ方法で Go を使用して RSA キーを生成する
OpenSSL コマンド openssl genrsa は RSA キーのペアを生成し、あるファイルには秘密キーがあり、別のファイルには公開キーがあります。 Go でこの機能を実現するには、次の手順に従います。
import "crypto/rand" key, err := rsa.GenerateKey(rand.Reader, bitSize) if err != nil { panic(err) }
import "crypto/rsa" pub := key.Public()
import ( "encoding/pem" "crypto/x509" ) 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)), }, )
import "io/ioutil" err := ioutil.WriteFile(filename+".rsa", keyPEM, 0700) err := ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755)
このコードは、それぞれ秘密 RSA キーと公開 RSA キーを含む 2 つのファイル、filename.rsa と filename.rsa.pub を生成します。キーは PEM 形式であるため、簡単にインポートして他のアプリケーションで使用できます。
以上がOpenSSL の「openssl genrsa」コマンドと同様に、Go で RSA キー ペアを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。