如何在python 3.7中使用AES-128-CTR对具有给定密钥和iv的明文进行加密?

如何在python 3.7中使用AES-128-CTR对具有给定密钥和iv的明文进行加密?,python,encryption,Python,Encryption,我正在尝试使用python 3.7.3使用给定的密钥和给定的iv对给定的明文进行加密。我不熟悉python加密库,但已经环顾了几个小时试图弄明白这一点,但我无法做到 我已经厌倦了使用pycryptodome库,因为我无法使用crypto和pycrypto(在安装它们时不断出错,可能是因为我在windows上?) 从加密密码导入AES 从Crypto.Util导入计数器 数据=b“纯文本” 键=b“5A557AC90890B2ACD59C536FE4279BBC” iv=b“5A557AC9089

我正在尝试使用python 3.7.3使用给定的密钥和给定的iv对给定的明文进行加密。我不熟悉python加密库,但已经环顾了几个小时试图弄明白这一点,但我无法做到

我已经厌倦了使用pycryptodome库,因为我无法使用crypto和pycrypto(在安装它们时不断出错,可能是因为我在windows上?)

从加密密码导入AES
从Crypto.Util导入计数器
数据=b“纯文本”
键=b“5A557AC90890B2ACD59C536FE4279BBC”
iv=b“5A557AC90890B2ACD59C536FE4279BBC”
计数器=计数器。新(128,初始值=iv)
密码=AES.new(密钥,AES.MODE\u CTR,计数器=计数器)
enc=cipher.encrypt(数据)
打印(enc)

我的最终结果是打印出加密字符串,但目前我遇到了各种错误,例如“在'bytes'和'int'实例之间不受支持”

您的代码没有正确使用。您试图在整数应该是的位置使用十六进制,即使您将
iv
值转换为整数,它也会太大

初始值(整数)-计数器的初始值。违约 值为1

因此,将代码更改为以下内容将起作用,例如:

counter = Counter.new(128, initial_value=1)
如果要将
iv
随机化,可以执行以下操作:

iv = int.from_bytes(os.urandom(16), sys.byteorder)
counter = Counter.new(128, initial_value=iv)