Как выполнить расшифровку blowfish с помощью pycrypto - PullRequest
0 голосов
/ 22 октября 2018

Здравствуйте, я пытаюсь выполнить Шифрование / дешифрование BlowFish с использованием pycrypto

Вот мой пример файла кода, шифрование работает хорошо при расшифровке данных

Он просто печатает:

 Hello 8g

вместо this

Вот полный пример кода для BlowFIsh Encryption и Расшифровка , не знаю, какой отступ мне нужно добавить, я знаю, что 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

1 Ответ

0 голосов
/ 23 октября 2018

Не удалось удалить заполнение после расшифровки.Ваше заполнение составляет 8 байтов символа ASCII "\ x08", также известного как символ возврата на одну позицию.Когда вы распечатали его, ваш терминал покорно «забыл» и удалил предыдущие 8 символов, которые были «wifi.org».

...