我正在使用AES 256加密我的应用程序中的整数。当我转换加密的文本为整数它给了我太久整数,如:AES不是256字节(8或16)
127510614367469717778923839884853125321
即使输入纯文本是一个单一的数字整数。
我使用下面的代码:
from Crypto.Cipher import AES
import binascii
obj = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
message = "0000000000000001"
ct = obj.encrypt(message)
hexa = binascii.hexlify(ct)
i = int(hexa,16)
print(i)
输出密文过长。我希望输出密码文本为3或4位数字而不是这些长数字。
有没有其他办法呢?我可以使用AES 8或AES 16进行加密吗?所以密文包含更少的位数?
您期望什么安全保证?一个3位数字的号码可能会被猜测或被强迫。你所做的任何事情都不会安全,只会阻止偶然的攻击者。如果你明白这一点,你可能会碰到[哈希](http://hashids.org/)。无论如何,你真的需要他们可以恢复吗?也许裁剪哈希也可能工作。 –