дешифрование сообщения на пайтон

не судите строго, я только пытаюсь что-то делать у меня есть такой код:

key = "".join(format(ord(i), "b") for i in input("пароль - "))

input_1 = " ".join(format(ord(i), "b") for i in input("введите сообщение - "))

step_1 = [int(i) ^ int(key) for i in input_1.split(" ")]

step_2 = [format(int(n), "b") for n in step_1]

как расшифровать обратно? пытался по разному сделать, но каждый раз выводит ошибки, не понимаю, как это сделать

принимается ключ от пользователя и сообщение, потом переводиться в двоичное представление, затем над этими значениями провожу xor и добавляю их в список, дальше надо сделать обратно, но у меня не получается


Ответы (1 шт):

Автор решения: Bratishka Jonny Ripper

Лучше использовать pyAesCrypt, но для вашего кода, решение такое.

try:
    key = int(input("Password: "))
    message = input("Message: ")
except ValueError:
    print("Password must be an INTEGER")
    exit()

# Шифрование
def crypt(message, key):
    formated = " ".join(format(ord(i), "b") for i in message)
    xor = [int(i, 2) ^ key for i in formated.split(" ")]
    binare = [format(i, "b") for i in xor]
    return binare

# Дешифрование
def decrypt(message, key):
    unbinare = [int(b, 2) for b in message]
    unxor = [i ^ key for i in unbinare]
    unformated = ''.join(chr(i) for i in unxor)
    return unformated

# Шифруем сообщение
crypted = crypt(message, key)
print("Encrypted:", crypted)

# Дешифруем сообщение
decrypted = decrypt(crypted, key)
print("Decrypted:", decrypted)
→ Ссылка