Maison > développement back-end > Golang > Comment enregistrer et charger en toute sécurité des clés RSA dans Go ?

Comment enregistrer et charger en toute sécurité des clés RSA dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-10 05:46:18
original
513 Les gens l'ont consulté

How to Securely Save and Load RSA Keys in Go?

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
Copier après la connexion

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)
Copier après la connexion

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),
    },
)
Copier après la connexion

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!

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