gpt4 book ai didi

python - 无法在 python 中的 AES.MODE_CTR 密码中使用 256 位计数器

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:07 26 4
gpt4 key购买 nike

伙计们。我使用 crypto 库进行 AES 加密和解密。 AES-128 工作完美:

ctr = Counter.new(128)
key = os.urandom(16)
obj = AES.new(key, AES.MODE_CTR, counter=ctr)

但是当我把128改成256,16改成32时出现错误:
ValueError:索引 29 处不支持的格式字符“b”(0x62)
你能帮我吗,有什么建议吗?

最佳答案

计数器大小与 block 密码的 block 大小相同。密码的 block 大小和 key 大小没有直接关系。

现在 AES-256 的 key 大小为 256 位, block 大小为 128 位。 Rijndael 是 AES 的一个子集,可以具有 256 位的 block 大小。但是 AES,使用 128、192 或 256 位的 key 大小,仍将具有恰好 128 位的 block 大小。那只是因为它是这样定义的。

所以基本上你应该始终将 ctr 留给 Counter.new(128)。如果您想使用 AES-256,请使用 os.urandom(32) 将您的 key 增加到 32 个字节。


如果您想获得有关如何使用/格式化计数器的提示,请查看 NIST SP 800-38A, Appendix B .

关于python - 无法在 python 中的 AES.MODE_CTR 密码中使用 256 位计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43988367/

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