gpt4 book ai didi

aes - 为什么 AES 的所有输入都必须是 16 的倍数?

转载 作者:行者123 更新时间:2023-12-04 21:43:23 34 4
gpt4 key购买 nike

我正在使用 AES 的 PyCrypto 实现,并且我正在尝试使用 24 字节 key 加密一些文本(24 字节)。

aes_ecb = AES.new('\x00'*24, AES.MODE_ECB)
aes_ecb.encrypt("123456"*4)

我收到了这个令人惊讶的错误 ValueError: Input strings must be a multiple of 16 in length那么为什么我的输入必须是 16 的倍数呢?输入字符串长度必须是我的 key 大小的倍数对我来说更有意义,因为这将允许在 key 和明文块之间进行很好的按位运算。

最佳答案

AES 是 block cipher .引自维基百科页面:“分组密码是一种对固定长度位组进行操作的确定性算法”。

AES 只能处理 128 位块(即您注意到的 16 个字符)。

如果您的输入长度不是 128 的倍数,则取决于您的应用程序,您可能必须非常小心处理 padding .

关于aes - 为什么 AES 的所有输入都必须是 16 的倍数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17773450/

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