Wie funktioniert AES in CTR für Python mit PyCrypto?

Ich verwende Python 2.7.1. Ich möchte etw mit AES im CTR-Modus verschlüsseln. Ich habe die PyCrypto-Bibliothek für Python installiert. Ich habe folgenden Code geschrieben:

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

Ich muss crypto.decrypt so oft ausführen wie die Byte-Größe meines Klartextes, um die entschlüsselten Daten korrekt zu erhalten. Dh:

encrypted = crypto.encrypt("test")
print crypto.decrypt(encrypted)
print crypto.decrypt(encrypted)
print crypto.decrypt(encrypted)
print crypto.decrypt(encrypted)

Der letzte Aufruf zum Entschlüsseln gibt mir den Klartext zurück. Die anderen Ausgaben von decrypt sind einige Kauderwelsch-Strings. Ich frage mich, ob das normal ist oder nicht? Muss ich jedes Mal in eine Schleife mit der gleichen Größe wie mein Klartext einbinden, oder habe ich etwas falsch gemacht?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage