Python cryptage AES sans module supplémentaire
Est-il possible de chiffrer/déchiffrer les données avec l'algorithme AES sans l'installation de modules supplémentaires? J'ai besoin d'envoyer/recevoir des données à partir de C#
, ce qui est chiffré avec la System.Security.Cryptography
de référence.
Mise à JOUR
J'ai essayé d'utiliser PyAES, mais qui est trop vieux. J'ai mis à jour quelques choses à faire que de travail, mais il n'a pas.
J'ai aussi ne peut pas l'installer car il la dernière version est 3.3
alors que ma version est 3.4
.
- Bien sûr, AES n'est pas si difficile de le faire manuellement, si vous ne me dérange pas qu'il soit lent. Ou vous pouvez accéder à la fenêtre de la crypto Api via
ctypes
. Ouopenssl
. Mais il serait beaucoup mieux d'utiliser un module qui facilite la tâche. Est-il une raison pour laquelle vous ne voulez pas? (Notez que le documentation officielle en particulier les points depycrypto
pour faire ce genre de chose). - Le
C#
partie travaille déjà, le problème est Python. Je suis toujours avoir des problèmes lors de l'installation des modules Python donc je voudrais si il y a une possibilité d'utiliser AES sans module supplémentaire. La vitesse fr/décrypter peut être au max de 200ms, c'est pour un chat. - Si vous rencontrez des problèmes lors de l'installation des modules Python, c'est un problème que vous devez résoudre, plutôt que de l'ignorer. Si vous avez un bris d'installation de Python, le réparer ou de le réinstaller. Si vous ne savez pas à propos de
pip
ou Christoph Gohlke Windows paquet binaire repo, en apprendre plus sur eux. - Une autre possibilité: Peut-on utiliser IronPython à la place de Disponible? Ensuite, vous pouvez accéder à
System.Security.Cryptography
tout aussi facilement à partir de Python qu'en C#. - pyaes semble bien fonctionner avec python 3.4 de 2015/12/18, au moins pour un simple cas d'utilisation (CTR chiffrer/déchiffrer)
Vous devez vous connecter pour publier un commentaire.
La disposition des Services de Chiffrement disponible dans la Bibliothèque Standard sont ceux. Comme vous pouvez le voir
AES
n'est pas répertorié, mais vous suggérons d'utiliserpycrypto
qui est un module supplémentaire.Vous avez juste à l'installer à l'aide pip, ou easy_install et puis comme l'a montré dans pycrypto's page:
La seule autre façon sans l'aide d'un module supplémentaire serait de code de la fonction-vous, mais quelle est la différence de téléchargement d'un module supplémentaire et l'utiliser à la place?
Si vous voulez un pur Python de mise en œuvre de l'AES que vous pouvez télécharger et importer vérifier pyaes.
pycrypto
.3.3
alors que je vais avoir Python3.4
PYAES devrait fonctionner avec n'importe quelle version de Python3.x. Pas besoin de modifier la bibliothèque.
Ici est un exemple de travail pour pyaes CTR mode pour Python3.x
(https://github.com/ricmoo/pyaes)
Laissez-moi savoir si vous obtenez des erreurs
Je suis en utilisant La cryptographie bibliothèque.
Voici un exemple d'utilisation de la bibliothèque:
Voici un document de mise en œuvre de l'AES compatible avec Python 3.
Exemple d'utilisation:
print plaintext
. Je pense que vous devez l'appeler comme une fonction.À ajouter à @enrico.bacis réponse: AES n'est pas implémentée dans la bibliothèque standard. Il est mis en œuvre dans le PyCrypto de la bibliothèque, qui est stable et bien testé. Si vous avez besoin d'AES, ajouter PyCrypto comme une dépendance de votre code.
Tandis que l'AES primitives sont, en théorie, assez simple que vous pourriez écrire une application en pur Python, il est fortement recommandé de ne pas le faire. C'est la première règle de crypto: ne pas mettre en œuvre vous-même. En particulier, si vous êtes juste de lancer votre propre bibliothèque crypto, vous aurez presque certainement se laisser aller ouvrir à une sorte de side-channel attaque.