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

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 10:51:29477parcourir

How to Decrypt Encrypted PKCS8 Private Keys in Go: Solving the

Résolution de l'erreur « Aucun en-tête DEK-Info dans le bloc » pour la clé privée PKCS8 cryptée

Lors de la tentative de décodage d'une clé privée PKCS8 cryptée à l'aide Allez-y, vous pouvez rencontrer l'erreur "pas d'en-tête DEK-Info dans le bloc". Cela indique que la fonction de décodage de clé n'est pas capable de traiter les clés privées PKCS8 chiffrées.

La génération de la clé à l'aide des commandes OpenSSL fournies semble être correcte. Cependant, la bibliothèque standard de Go ne prend pas en charge nativement le déchiffrement des clés privées PKCS8 chiffrées.

Solution :

Pour résoudre ce problème, vous pouvez utiliser une bibliothèque externe spécialement conçue pour gérer Décryptage de la clé PKCS8. Un exemple d'une telle bibliothèque est la bibliothèque « pkcs8 », disponible sur GitHub.

Supposons que vous disposiez du code suivant pour déchiffrer la clé PKCS8 à l'aide de la bibliothèque « pkcs8 » :

<code class="go">import "github.com/youmark/pkcs8"

func DecryptPKCS8(key []byte, password string) (*pkcs8.PrivateKey, error) {
    block, _ := pem.Decode(key)
    return pkcs8.Decrypt(block.Bytes, []byte(password))
}</code>

Cette fonction prend comme arguments la clé PKCS8 chiffrée sous forme de tranche d'octets et le mot de passe de déchiffrement. Il tente ensuite de décoder le bloc PEM, qui contient les données de clé chiffrées.

Si le décodage réussit, la fonction appelle la fonction Decrypt de la bibliothèque "pkcs8" pour effectuer le décryptage proprement dit. La clé déchiffrée est ensuite renvoyée sous la forme d'une structure *pkcs8.PrivateKey.

En incorporant cette bibliothèque et en utilisant la fonction DecryptPKCS8 pour traiter les clés PKCS8 cryptées, vous pouvez résoudre l'erreur « pas d'en-tête DEK-Info dans le bloc ».

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