Menjana Kunci RSA dengan Go: Mereplikasi Openssl genrsa
Arahan OpenSSL openssl genrsa -out $1.rsa $2 menjana pasangan kunci RSA dan mengeksportnya ke dua fail berasingan, $1.rsa untuk kunci peribadi dan $1.rsa.pub untuk kunci awam. Dalam Go, proses ini melibatkan:
Kod berikut menunjukkan proses ini:
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) } }
Kod ini menjana kunci peribadi key.rsa fail dan kunci awam key.rsa.pub. Kandungan fail ini menyerupai output arahan OpenSSL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Pasangan Kunci RSA dalam Go, Meniru Perintah `genrsa` OpenSSL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!