Maison > développement back-end > Golang > Pourquoi Go et Pycrypto produisent-ils des résultats de chiffrement AES-CFB différents ?

Pourquoi Go et Pycrypto produisent-ils des résultats de chiffrement AES-CFB différents ?

Mary-Kate Olsen
Libérer: 2024-12-13 11:11:10
original
256 Les gens l'ont consulté

Why Do Go and Pycrypto Produce Different AES-CFB Encryption Results?

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal