Maison >développement back-end >Golang >Comment décrypter les clés privées PKCS8 cryptées dans Go et corriger l'erreur « Aucun en-tête DEK-Info dans le bloc » ?

Comment décrypter les clés privées PKCS8 cryptées dans Go et corriger l'erreur « Aucun en-tête DEK-Info dans le bloc » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 09:36:02340parcourir

How to Decrypt Encrypted PKCS8 Private Keys in Go and Fix the

Déchiffrement des clés privées PKCS8 cryptées : résolution de l'erreur « Aucun en-tête DEK-Info dans le bloc »

Dans une tentative de lecture d'un PKCS8 crypté clé privée dans Go, vous pouvez rencontrer l'erreur "x509 : aucun en-tête DEK-Info dans le bloc". Cette erreur résulte d'une limitation inhérente à la bibliothèque standard Go, qui ne dispose pas de fonctionnalités permettant de déchiffrer les clés PKCS8 chiffrées.

Dépannage du problème

Pour vous assurer que vous ne générez pas la clé de manière incorrecte, vérifiez que vos commandes OpenSSL sont les suivantes :

  1. Générer la clé privée :

    openssl genrsa -out file.pem -passout pass:file -aes256 1024
  2. Convertir au format PKCS8 :

    openssl pkcs8 -topk8 -inform pem -in file.pem -outform pem -out filePKCS8.pem

Solution alternative

Bien que la bibliothèque standard Go ne fournisse pas de prise en charge directe pour le déchiffrement des clés PKCS8 cryptées, vous pouvez utiliser un logiciel externe package tel que :

  • github.com/youmark/pkcs8

Ce package offre une fonction spécifiquement conçue pour décrypter les clés PKCS8 cryptées :

func DecryptPrivateKey(block *pem.Block, password []byte) (priv interface{}, err error)

En utilisant ce package, vous pouvez surmonter les limitations de la bibliothèque standard Go et décrypter avec succès les clés privées PKCS8 cryptées.

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