2024-06-28 15:21:06 发布
网友
我用AES256加密我应用程序中的整数。当我将加密文本转换为整数时,它给我的整数太长了,比如:
127510614367469717778923839884853125321
即使输入的纯文本是个位数的整数。在
我使用以下代码:
输出的密码文本太长。我想把密码文本输出为3或4位数字,而不是这个长数字。在
有没有别的办法?我可以用AES 8或AES 16加密吗?所以密码文本包含的位数更少?在
“AES256”中的“256”指的是密钥大小,“问题”在于块大小。在
AES是一个block cipher,块大小为128位(16字节)。这意味着它期望作为输入,并产生16字节的数据块作为输出。这是算法的特点,无论密钥大小如何变化(AES 128/192/256),都是相同的。这是分组密码的固有特性,虽然存在比AES更小的块大小的密码,但这实际上使它们更不安全(参见示例Sweet32)。在
但是,您可以在一种模式下使用AES,使其成为一个输入大小=输出大小的stream cipher,例如CTR (Counter) mode。在
“AES256”中的“256”指的是密钥大小,“问题”在于块大小。在
AES是一个block cipher,块大小为128位(16字节)。这意味着它期望作为输入,并产生16字节的数据块作为输出。这是算法的特点,无论密钥大小如何变化(AES 128/192/256),都是相同的。这是分组密码的固有特性,虽然存在比AES更小的块大小的密码,但这实际上使它们更不安全(参见示例Sweet32)。在
但是,您可以在一种模式下使用AES,使其成为一个输入大小=输出大小的stream cipher,例如CTR (Counter) mode。在
相关问题 更多 >
编程相关推荐