Maison > développement back-end > Golang > Comment puis-je générer des paires de clés RSA dans Go, similaires à la commande « openssl genrsa » d'OpenSSL ?

Comment puis-je générer des paires de clés RSA dans Go, similaires à la commande « openssl genrsa » d'OpenSSL ?

Susan Sarandon
Libérer: 2024-12-14 15:49:14
original
841 Les gens l'ont consulté

How Can I Generate RSA Key Pairs in Go, Similar to OpenSSL's `openssl genrsa` Command?

Utilisez Go pour générer des clés RSA de la même manière qu'Openssl

La commande OpenSSL openssl genrsa génère une paire de clés RSA, stockant le clé privée dans un fichier et clé publique dans un autre. Pour obtenir cette fonctionnalité dans Go, vous pouvez suivre ces étapes :

  1. Générer la paire de clés RSA :
import "crypto/rand"

key, err := rsa.GenerateKey(rand.Reader, bitSize)
if err != nil {
    panic(err)
}
Copier après la connexion
  1. Extraire le public clé :
import "crypto/rsa"

pub := key.Public()
Copier après la connexion
  1. Encoder les clés au format PEM :
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)),
    },
)
Copier après la connexion
  1. Écrivez les clés codées PEM dans files :
import "io/ioutil"

err := ioutil.WriteFile(filename+".rsa", keyPEM, 0700)
err := ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755)
Copier après la connexion

Ce code générera deux fichiers, filename.rsa et filename.rsa.pub, contenant respectivement les clés RSA privées et publiques. Les clés seront au format PEM, ce qui vous permettra de les importer et de les utiliser facilement avec d'autres applications.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal