gpt4 book ai didi

python - 如何在 python 3.7 中使用 AES-128-CTR 使用给定 key 和 iv 加密明文?

转载 作者:行者123 更新时间:2023-12-01 01:00:06 25 4
gpt4 key购买 nike

我正在尝试使用 python 3.7.3 使用给定的 key 和给定的 iv 来加密给定的明文。我不熟悉 python 加密库,但我花了几个小时试图弄清楚这一点,但我无法解决。

我已经厌倦了使用 pycryptodome 库,因为我无法使用 crypto 和 pycrypto(安装它们时不断出现错误,也许是因为我在 Windows 上?)。

from Crypto.Cipher import AES
from Crypto.Util import Counter

data = b"plaintext"
key = b"5A557AC90890B2ACD59C536FE4279BBC"
iv = b"5A557AC90890B2ACD59C536FE4279BBC"

counter = Counter.new(128, initial_value=iv)
cipher = AES.new(key, AES.MODE_CTR, counter=counter)

enc = cipher.encrypt(data)

print(enc)

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

最佳答案

您的代码未使用 Counter 正确。您试图在整数应该使用的地方使用十六进制,即使您将 iv 值转换为整数,它也会太大。

initial_value (integer) - The initial value of the counter. Default value is 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)

关于python - 如何在 python 3.7 中使用 AES-128-CTR 使用给定 key 和 iv 加密明文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55876073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com