256字节(8或16)以外的AES

2024-06-28 15:21:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我用AES256加密我应用程序中的整数。当我将加密文本转换为整数时,它给我的整数太长了,比如:

127510614367469717778923839884853125321

即使输入的纯文本是个位数的整数。在

我使用以下代码:

^{pr2}$

输出的密码文本太长。我想把密码文本输出为3或4位数字,而不是这个长数字。在

有没有别的办法?我可以用AES 8或AES 16加密吗?所以密码文本包含的位数更少?在


Tags: 代码文本应用程序密码数字整数aes256aes
1条回答
网友
1楼 · 发布于 2024-06-28 15:21:06

“AES256”中的“256”指的是密钥大小,“问题”在于大小。在

AES是一个block cipher,块大小为128位(16字节)。这意味着它期望作为输入,并产生16字节的数据块作为输出。这是算法的特点,无论密钥大小如何变化(AES 128/192/256),都是相同的。这是分组密码的固有特性,虽然存在比AES更小的块大小的密码,但这实际上使它们更不安全(参见示例Sweet32)。在

但是,您可以在一种模式下使用AES,使其成为一个输入大小=输出大小的stream cipher,例如CTR (Counter) mode。在

相关问题 更多 >