密钥以以下格式生成并保存在env文件中:
密钥=KG0TUB0grHz1AngJUwcsN4jcRlujde5sbzbeJ8InZsI=
def encrypt_message(message):
key = app.config['SECRET_KEY']
encoded_message = message.encode()
f = Fernet(key)
encrypted_message = f.encrypt(encoded_message)
print(encrypted_message)
def decrypt_message(encrypted_message):
key = app.config['SECRET_KEY']
f = Fernet(key)
decrypted_message = f.decrypt(encrypted_message)
print(decrypted_message.decode())
加密工作正常,没有错误。但是,在解密过程中出现以下错误:
当密钥作为byteString持久化时:
b'KG0TUB0grHz1AngJUwcsN4jcRlujde5sbzbeJ8InZsI='
ValueError: Fernet key must be 32 url-safe base64-encoded bytes
当密钥作为字符串持久化时
KG0TUB0grHz1AngJUwcsN4jcRlujde5sbzbeJ8InZsI=
TypeError: token must be bytes
解决方案:对密钥和消息进行编码
相关问题 更多 >
编程相关推荐