"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi ma fonction de cryptage AES ECB dans Go ne renvoie-t-elle aucune donnée ?

Pourquoi ma fonction de cryptage AES ECB dans Go ne renvoie-t-elle aucune donnée ?

Publié le 2025-01-17
Parcourir:408

Why is my AES ECB Encryption Function in Go Not Returning Any Data?

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.

Dernier tutoriel Plus>

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