Maison  >  Article  >  développement back-end  >  Comment lire une clé RSA à partir d’un fichier dans Go ?

Comment lire une clé RSA à partir d’un fichier dans Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 18:24:02442parcourir

How to Read an RSA Key from a File in Go?

Comment lire une clé RSA à partir d'un fichier

Contexte : Les clés RSA sont largement utilisées en cryptographie pour une communication sécurisée. Lors de la mise en œuvre de systèmes basés sur RSA, il est souvent nécessaire de charger des clés privées existantes à partir de fichiers à des fins d'authentification ou de signature. Cependant, trouver des instructions complètes sur la façon de créer une structure de clé basée sur une clé pré-générée à partir d'un fichier peut être difficile.

Solution : Pour lire une clé RSA à partir d'un fichier, vous peut utiliser les étapes suivantes :

Option 1 : PKCS#1 codé Clé

  1. Assurez-vous que votre clé privée est codée au format PKCS#1, qui commence généralement par "-----BEGIN RSA PRIVATE KEY-----".
  2. Décoder la chaîne codée PEM à l'aide de Decode([]byte(pemString)) à partir du codage/pem package.
  3. Analysez les octets de clé bruts dans un *rsa.PrivateKey à l'aide de ParsePKCS1PrivateKey(block.Bytes) du package x509.

Option 2 : PKCS#8 encodé Clé

  1. Vérifiez que votre compte privé La clé est codée au format PKCS#8, qui commence généralement par "-----BEGIN PRIVATE KEY-----".
  2. Décodez la chaîne codée en PEM comme dans l'option 1.
  3. Analyser les octets bruts de la clé dans un *rsa.PrivateKey à l'aide de ParsePKCS8PrivateKey (block.Bytes) du x509 package.

Exemple de code :

// PKCS#1 Encoded Key Example
package main

import (
    "crypto/rsa"
    "crypto/x509"
    "encoding/pem"
)

func main() {
    keyPEMString := `-----BEGIN RSA PRIVATE KEY-----
    ... (Your PKCS#1 key here)
    -----END RSA PRIVATE KEY-----`

    keyData, _ := pem.Decode([]byte(keyPEMString))
    key, _ := x509.ParsePKCS1PrivateKey(keyData.Bytes)
    fmt.Println(key.N) // Access the RSA modulus
}

// PKCS#8 Encoded Key Example
package main

import (
    "crypto/rsa"
    "crypto/x509"
    "encoding/pem"
)

func main() {
    keyPEMString := `-----BEGIN PRIVATE KEY-----
    ... (Your PKCS#8 key here)
    -----END PRIVATE KEY-----`

    keyData, _ := pem.Decode([]byte(keyPEMString))
    key, _ := x509.ParsePKCS8PrivateKey(keyData.Bytes)
    rsaKey := key.(*rsa.PrivateKey)
    fmt.Println(rsaKey.N) // Access the RSA modulus
}

En suivant ces méthodes, vous pouvez lire et instancier avec succès une clé RSA à partir d'un fichier, vous permettant de effectuez des opérations basées sur RSA dans vos 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!

Déclaration:
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