Openssl コマンドについて
提供された OpenSSL コマンドは RSA キーを生成します秘密鍵と公開鍵をペアにして別々のファイルに保存します。 2 つの引数を取ります:
で実装Go
Go でこの機能を複製するには、次の手順を実行する必要があります。
Go Code:
package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "fmt" "io/ioutil" ) func main() { // Define filename and bit size filename := "key" bitSize := 4096 // Generate RSA key key, err := rsa.GenerateKey(rand.Reader, bitSize) if err != nil { panic(err) } // Extract public key pub := key.Public() // Convert to PKCS#1 DER format 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)), }, ) // Write keys to files err = ioutil.WriteFile(filename+".rsa", keyPEM, 0700) if err != nil { panic(err) } err = ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755) if err != nil { panic(err) } fmt.Println("RSA key pair generated and written to files.") }
出力:
プログラムは次のようになります。次の内容の 2 つのファイルを作成します:
key.rsa:
-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----
key.rsa.pub:
-----BEGIN RSA PUBLIC KEY----- ... -----END RSA PUBLIC KEY-----
以上がGo で RSA キー ペアを生成する方法: OpenSSL との比較?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。