Comment importer une clé privée RSA à partir d'un fichier ?
Lorsque vous avez besoin de lire une clé RSA à partir d'un fichier pour obtenir une signature pour un JSON jeton Web (JWT), des mesures spécifiques peuvent être prises pour y parvenir. Bien qu'il existe plusieurs exemples facilement disponibles illustrant la procédure de stockage d'une clé RSA nouvellement générée sur un lecteur, les instructions sur la façon de créer une structure de clé s'appuyant sur une clé pré-générée à partir d'un fichier peuvent être limitées.
Pour Pour résoudre ce problème, nous présentons une solution complète qui combine les fonctionnalités des fonctions pem.Decode et x509.ParsePKCS1PrivateKey. Cette approche peut importer efficacement une clé privée RSA à partir d'un fichier.
Voici une explication détaillée du processus :
Décoder la clé codée en PEM :
Analyser la clé privée PKCS#1 :
Imprimer les paramètres de clé privée :
Exemple de code :
Voici un exemple qui met en pratique les instructions susmentionnées :
package main import ( "crypto/x509" "encoding/pem" "fmt" ) func main() { // Define the PEM-encoded key as a string. pemString := `-----BEGIN PRIVATE KEY----- [PEM-encoded key content] -----END PRIVATE KEY-----` // Decode the PEM-encoded key. block, _ := pem.Decode([]byte(pemString)) // Parse the PKCS#1 private key. key, _ := x509.ParsePKCS1PrivateKey(block.Bytes) // Print the modulus of the private key. fmt.Println(key.N) }
Alternative pour les clés codées PKCS#8 :
Si la clé avec laquelle vous travaillez est codée au format PKCS#8, une approche différente est nécessaire. Vous utiliseriez plutôt la fonction x509.ParsePKCS8PrivateKey. Voici un exemple :
func main() { // Define the PEM-encoded key as a string. pemString := `-----BEGIN PRIVATE KEY----- [PEM-encoded key content] -----END PRIVATE KEY-----` // Decode the PEM-encoded key. block, _ := pem.Decode([]byte(pemString)) // Parse the PKCS#8 private key. parseResult, _ := x509.ParsePKCS8PrivateKey(block.Bytes) // Cast the parse result to an RSA private key. key := parseResult.(*rsa.PrivateKey) // Print the modulus of the private key. fmt.Println(key.N) }
En suivant ces étapes, vous pouvez importer efficacement une clé privée RSA à partir d'un fichier, qu'elle soit encodée au format PKCS#1 ou PKCS#8.
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!