PyCrypto problème à l'aide d'AES+CTR

Je suis en train d'écrire un morceau de code pour chiffrer un texte à l'aide du chiffrement symétrique. Mais il ne vient pas de retour avec le bon résultat...

from Crypto.Cipher import AES
import os

crypto = AES.new(os.urandom(32), AES.MODE_CTR, counter = lambda : os.urandom(16))
encrypted = crypto.encrypt("aaaaaaaaaaaaaaaa")
print crypto.decrypt(encrypted)

Ici, le texte décrypté est différent de l'original.

Je ne comprends pas vraiment beaucoup sur de la cryptographie, de sorte s'il vous plaît garder avec moi. Je comprends la CTR mode nécessite un "compteur" de la fonction d'approvisionnement aléatoire compteur à chaque fois, mais pourquoi est-il besoin de cela pour être de 16 octets lors de ma clé est de 32 octets et il insiste sur le fait que mon message est un multiple de 16 octets en trop? Est-ce normal?

Je suppose qu'il ne veut pas revenir au message d'origine parce que le compteur changé entre chiffrer et déchiffrer. Mais alors, comment est-il censé fonctionner en théorie, de toute façon? Ce que je fais mal? De toute façon, je suis obligé de revenir à la BCE jusqu'à ce que j'ai trouver cela 🙁

OriginalL'auteur xster | 2010-07-01