дешифрование сообщения на пайтон
не судите строго, я только пытаюсь что-то делать у меня есть такой код:
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)