Я хотел бы, используя Python3 Crypto.Cipher, чтобы использовать AES в режиме CTR. Проблема в том, что у меня есть массив двоичных цифр («0/1» в строковом формате), и я хочу зашифровать / расшифровать их с помощью AES-CTR. После просмотра этой статьи я попытался разработать код, который добавлен ниже.
from Crypto.Cipher import AES
import os
import sys
secret = os.urandom(16)
crypto = AES.new(os.urandom(32), AES.MODE_CTR, counter=lambda: secret)
msg = "Hello World"
#string-->bytes
bytes_msg = str.encode(msg)
print(msg + " > 2bytes > " + str(bytes_msg))
#bytes-->encrypt
encrypted_bytes_msg = crypto.encrypt(bytes_msg)
print(" > encryption > " + str(encrypted_bytes_msg))
#encrypt-->decrypt
decrypted_bytes_msg = crypto.decrypt(encrypted_bytes_msg)
print(" > decryption > " + str(decrypted_bytes_msg))
#bytes-->string
#decrypted_msg = decrypted_bytes_msg.decode() # <= !ERROR HERE!
#print(" > msg > " + decrypted_msg)
Я ожидал, что увидит что-то вроде следующего:
Hello World> 2 байта> "b'Hello World"> шифрование> # JibberishText #> расшифровка> b'Hello World '> Hello World
Фактические результаты этого прогона:
Hello World> 2 байта> b'Hello World '> шифрование> b' \ x8eo \ xfc` \ xeck \ xcf \ r4 \ x1fS '> расшифровка> b' \ xc7 \ x93 \ x8a \ x1dK \ xad\ xc5 \ x9d8 \ x9c \ x18 '
Также : если я не закомментирую последние строки, я получаю следующую ошибку:
File "aes25способ использования модуля?