如何使用pycrypto执行河豚解密



您好,我正在尝试使用pycrypto执行BlowFish 加密/解密

这是我的示例代码文件,解密数据时加密效果很好

它只是打印:

Hello 8g

而不是这个

这是BlowFIsh 加密解密的完整示例代码,不确定我需要添加额外的填充,我知道 BlowFISH 的固定数据块大小为 8 字节,其密钥的长度可以从32 到 448 位(4 到 56 字节(不等。

from Crypto.Cipher import Blowfish
from Crypto import Random
from struct import pack
bs = Blowfish.block_size
import os

encryptedpass = "myverystrongpassword"
plaintextMessage = "Hello 8gwifi.org"
iv = os.urandom(Blowfish.block_size)
bs = Blowfish.block_size

# ENcryption
cipher = Blowfish.new(encryptedpass, Blowfish.MODE_CBC, iv)
plen = bs - divmod(len(plaintextMessage),bs)[1]
padding = [plen]*plen
padding = pack('b'*plen, *padding)
ct = iv + cipher.encrypt(plaintextMessage + padding)

#Decryption
cipher = Blowfish.new(encryptedpass, Blowfish.MODE_CBC, iv)
msg = cipher.decrypt(ct[bs:])
print msg

解密后无法删除填充。填充是 ASCII 字符"\x08"的 8 个字节,也称为退格字符。当您打印它时,您的终端尽职尽责地"退格"并删除了前面的 8 个字符,即"wifi.org"。

相关内容

  • 没有找到相关文章

最新更新