Расшифровка Fernet на Python 3 прошла успешно с помощью слегка измененного ключа шифрованияPython

Программы на Python
Anonymous
Расшифровка Fernet на Python 3 прошла успешно с помощью слегка измененного ключа шифрования

Сообщение Anonymous »

Код: Выделить всё

def encrypt_message(message, key) -> bytes:
"""Encrypts a message using Fernet."""
f = Fernet(key)
encrypted_message = f.encrypt(message.encode())
return encrypted_message

def decrypt_message(encrypted_message, key) -> str:
"""Decrypts a message using Fernet."""
f = Fernet(key)
decrypted_message = f.decrypt(encrypted_message).decode()
return decrypted_message

message_ = "This is a secret message!"

encrypted = encrypt_message(message_, b"HeYt_XX4wRLvnDP9fC9-7hlMgasQ270tpWSrjKy0jRE=")
# The encrypted message will change in every encryption process which is OK
print("Encrypted:", encrypted)

decrypted = decrypt_message(encrypted, b"HeYt_XX4wRLvnDP9fC9-7hlMgasQ270tpWSrjKy0jRF=")
print("Decrypted:", decrypted)
При вызове decrypt_message() я изменяю ключ дешифрования, я меняю «E» на «F» (то же самое с G, H), и это все равно удается процесс расшифровки. Я не знаю, почему, если я, например, поставлю «Я», это не удастся. Насколько я понимаю, симметричное шифрование основано на использовании одного и того же ключа как для шифрования, так и для дешифрования. Я новичок в мире шифрования/дешифрования.
Вывод:

Код: Выделить всё

Encrypted: b'gAAAAABmcc7eNiwRP4lYl7gM0mthNdlvYsPUs_nttJMchmZ_mfJNMS4D2BC3QZHZZiZ7vrPhPwvBqK2DDOXSuB5wQkk9t-tU0PYefGvNy2IoDZNGNQMcdc0='

Код: Выделить всё

Decrypted: This is a secret message!
Процесс завершен с кодом завершения 0


Подробнее здесь: https://stackoverflow.com/questions/786 ... yption-key

Вернуться в «Python»