Cryptage AES ECB dans Go : dépannage et mise en œuvre
Votre tentative initiale d'implémentation du cryptage AES ECB dans Go a rencontré certains obstacles. Voici une explication complète et une solution de code révisée :
Remplissage PKCS5
Le remplissage PKCS5 est crucial pour le cryptage AES en mode ECB. Cela garantit que le texte brut a une longueur qui est un multiple de la taille du bloc. Votre algorithme PKCS5Pad existant semble fonctionner correctement.
Mode de cryptage
Le package Go AES ne fournit pas explicitement de mode "ECB". paramètre. Cependant, vous pouvez l'émuler en déchiffrant les données en blocs de taille fixe :
Fonction cryptée révisée
func AESECB(ciphertext []byte) []byte { cipher, _ := aes.NewCipher([]byte(KEY)) bs := aes.BlockSize if len(ciphertext)%bs != 0 { panic("Need a multiple of the block size") } plaintext := make([]byte, len(ciphertext)) for len(plaintext) > 0 { cipher.Decrypt(plaintext, ciphertext) plaintext = plaintext[bs:] ciphertext = ciphertext[bs:] } return plaintext }
Ce code divise le texte chiffré en blocs, déchiffre chaque bloc et ajoute les blocs déchiffrés au tampon de texte brut.
Problème d'implémentation
Le La fonction révisée AESECB ne semble renvoyer aucune donnée. Assurez-vous de l'appeler correctement et de transmettre le texte chiffré comme argument.
Note de sécurité importante
Il est à noter que le mode ECB n'est pas cryptographiquement sécurisé. Les blocs de texte en clair répétés produisent toujours des blocs cryptés identiques, ce qui les rend vulnérables à certaines attaques. Il est fortement recommandé d'utiliser des modes de fonctionnement plus sécurisés, tels que CBC, CTR ou GCM, pour un cryptage robuste.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3