gpt4 book ai didi

python - 如何使用 pycrypto 执行河豚解密

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:06 24 4
gpt4 key购买 nike

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

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

它只是打印:

 Hello 8g

而不是 this

这里是BlowFIsh加密解密的完整示例代码,不确定我需要添加额外的填充,我知道BlowFISH有一个事实固定数据 block 大小为 8 字节,其 key 长度可以从 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”。

关于python - 如何使用 pycrypto 执行河豚解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52927037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com