Как AES в CTR работает для Python с PyCrypto?

Я использую Python 2.7.1 Я хочу зашифровать с помощью AES в режиме CTR. Я установил библиотеку PyCrypto для Python. Я написал следующий код:

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

Я должен запустить crypto.decrypt столько раз, сколько байт моего открытого текста, чтобы правильно получить расшифрованные данные. то есть:

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

Последний вызов для расшифровки вернет мне открытый текст. Другие выходы из расшифровки - это несколько бессмысленных строк. Мне интересно, нормально это или нет? Нужно ли мне каждый раз включать в цикл размер, равный моему тексту, или я ошибся?

Ответы на вопрос(4)

Ваш ответ на вопрос