我正在使用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/)。無論如何,你真的需要他們可以恢復嗎?也許裁剪哈希也可能工作。 –