Enregistrement et chargement des clés publiques et privées RSA dans Go
Question :
Comment peut-on Je persiste et charge en toute sécurité les clés publiques et privées RSA vers et depuis le disque à l'aide du package crypto/rsa dans Allez-y ?
Réponse :
Pour enregistrer une clé privée RSA, pensez à utiliser la fonction MarshalPKCS1PrivateKey du package crypto/x509 :
func MarshalPKCS1PrivateKey(key *rsa.PrivateKey) []byte
Cette fonction convertit la clé privée au format DER (Distinguished Encoding Rules), qui peut être stockée sous forme de tableau d'octets. Pour charger la clé privée depuis DER, utilisez la fonction ParsePKCS1PrivateKey :
func ParsePKCS1PrivateKey(der []byte) (key *rsa.PrivateKey, err error)
Pour les clés publiques, les fonctions MarshalPKCS1PublicKey et ParsePKCS1PublicKey ont un objectif similaire.
Encodage PEM pour le format standard :
Au lieu de stocker directement les données binaires codées en DER, il est courant d'encoder la clé privée dans un fichier PEM (Privacy-Enhanced Mail). PEM encode les données binaires en Base64 et ajoute des en-têtes et des pieds de page au fichier. Pour encoder la clé privée, utilisez la fonction pem.EncodeToMemory :
pemdata := pem.EncodeToMemory( &pem.Block{ Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key), }, )
L'encodage PEM fournit un format standardisé pour l'échange de clés et simplifie leur gestion.
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!