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

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

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 07:56:29985parcourir

How to Decrypt Encrypted PKCS8 Keys in Go:

Go : "Aucun en-tête DEK-Info dans le bloc" Erreur lors du déchiffrement des clés PKCS8 cryptées

Lors de la tentative de déchiffrement d'une clé privée PKCS8 cryptée dans Go, vous pouvez rencontrer un message d'erreur indiquant "x509 : aucun en-tête DEK-Info dans le bloc". Cette erreur indique que le bloc fourni ne contient pas l'en-tête DEK-Info nécessaire, indispensable au déchiffrement de la clé.

Le problème réside dans le fait que la bibliothèque Go standard ne fournit pas de fonction native de déchiffrement. Clés PKCS8 cryptées. Pour résoudre ce problème, vous pouvez utiliser des bibliothèques tierces ou du code personnalisé.

Voici une bibliothèque appropriée capable de gérer les fichiers PKCS8 cryptés : https://github.com/youmark/pkcs8/blob/master/pkcs8. go#L103

En incorporant le package pkcs8 dans votre code, vous pouvez réussir à décrypter les clés privées PKCS8 cryptées à l'aide de l'extrait de code suivant :

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

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

Cet extrait de code utilise la fonction Décrypter du pkcs8 pour déchiffrer la clé PKCS8 chiffrée. Le premier paramètre correspond aux données de clé codées, tandis que le deuxième paramètre est le mot de passe utilisé pour chiffrer la clé.

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