RSA-Schlüssel mit Go generieren: Openssl genrsa replizieren
Der OpenSSL-Befehl openssl genrsa -out $1.rsa $2 generiert ein RSA-Schlüsselpaar und exportiert sie in zwei separate Dateien, $1.rsa für den privaten Schlüssel und $1.rsa.pub für den öffentlichen Schlüssel. In Go umfasst dieser Prozess Folgendes:
Der folgende Code demonstriert diesen Prozess:
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) } }
Dieser Code generiert die private Schlüsseldatei key.rsa und die öffentliche Schlüsseldatei key.rsa.pub. Der Inhalt dieser Dateien ähnelt der Ausgabe des OpenSSL-Befehls.
Das obige ist der detaillierte Inhalt vonWie kann ich RSA-Schlüsselpaare in Go generieren und dabei den Befehl „genrsa' von OpenSSL nachahmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!