В настоящее время я изучаю python и пытаюсь создать программу шифрования, которая каждый раз одинаково шифрует одно и то же сообщение. Я достиг процесса шифрования с помощью Fernet.
import base64
import os
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
password_provided = 'examplepassword'
kpassword = password_provided.encode()
salt = b'H&\xb6\n\xe6@\xdf\x13\x88\x98 Z\xf0\xea,\xca\x05\xd7\x99\x105\xa8\xa2{\xa9F\xe0\x91\x89c)\xf8%@]"u<\xe03|\xe2\re]\'\xb7\x89O2\xf9\x0bY\xf5\xb6<\x80z\\bM\x8dDx'
kdf = PBKDF2HMAC(
algorithm = hashes.SHA256,
length = 32,
salt = salt,
iterations = 100000,
backend = default_backend()
)
key = base64.urlsafe_b64encode(kdf.derive(kpassword))
k = Fernet(key)
example = k.encrypt(b'ABC')
print(example)
этот код работает и шифрует егоодин раз, как я и ожидал, но Фернет каждый раз шифрует его по-разному, и я не знаю почему.если есть какой-либо способ заставить текущую программу каждый раз одинаково шифровать сообщение, пожалуйста, помогите, или если есть еще один способ завершить то, что я пытаюсь сделать.
На всякий случай, если вы предложите,нет, я на 90% уверен, что соль не является проблемой, поскольку я пробовал более длинные и более короткие соли, используя os.urandom()
, я также пытался изменить пароль.
РЕДАКТИРОВАТЬ: я пытаюсь зашифровать входчто человек дает, то кто-то еще дает тот же вход, и я хочу сравнить шифрование