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?