Génération de clés RSA avec Go : réplication d'Openssl genrsa
La commande OpenSSL openssl genrsa -out $1.rsa $2 génère une paire de clés RSA et les exporte vers deux fichiers distincts, $1.rsa pour la clé privée et $1.rsa.pub pour la clé publique. En Go, ce processus consiste à :
Le code suivant illustre ce processus :
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) } }
Ce code génère le fichier de clé privée key.rsa et le fichier de clé publique key.rsa.pub. Le contenu de ces fichiers ressemble à la sortie de la commande OpenSSL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!