Maison >développement back-end >Golang >Pourquoi Go et Pycrypto produisent-ils des résultats de chiffrement AES-CFB différents ?
Résultats de cryptage AES-CFB incohérents entre Go et Pycrypto
En utilisant le cryptage AES-CFB, des résultats variables sont obtenus lors de la comparaison entre Go et Pycrypto . Pour étudier cette différence, nous analysons les exemples de code fournis.
En Python, Crypto.Cipher.AES utilise MODE_CFB avec un vecteur initial (IV) explicitement spécifié. À l'inverse, dans Go, aes.NewCipher nécessite la création explicite d'un chiffrement par bloc AES et l'instanciation ultérieure de CFBEncrypter ou CFBDecrypter avec le IV souhaité.
Une distinction essentielle entre les deux implémentations réside dans leur traitement de la taille des segments. Pycrypto fonctionne sur des segments de 8 bits, appelés CFB8, tandis que Go utilise des segments de 16 bits par défaut. Cette différence conduit à la divergence observée dans les résultats de chiffrement.
Adaptation de Go à l'approche CFB8 de Python
Pour permettre à Go de déchiffrer le texte chiffré par Pycrypto avec les paramètres CFB8, la source le code du CFBDecrypter de Go peut être modifié. Plus précisément, la méthode XORKeyStream peut être adaptée pour gérer des segments de 8 bits.
Cette modification permettrait à Go de déchiffrer le texte chiffré à l'aide des paramètres AES-CFB8 spécifiques de Pycrypto, favorisant l'interopérabilité entre les deux langages dans la gestion des tâches de chiffrement et de décryptage.
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!