使用cryptography.fernet解密消息不起作用

q3qa4bjr  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(342)

我刚刚试过加密和解密数据。我首先生成一个密钥,然后用它加密数据并将其保存到一个xml文件中。现在这个数据被读取,应该再次解密。
但是现在我得到了错误消息“cryptography.fernet.invalidtoken”。

import xml.etree.cElementTree as ET
from cryptography.fernet import Fernet
from pathlib import Path

def generate_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("../login/secret.key", "wb") as key_file:
        key_file.write(key)

def decrypt_message(encrypted_message):
    """
    Decrypts an encrypted message
    """
    key = load_key()
    f = Fernet(key)
    message = encrypted_message.encode('utf-8')
    decrypted_message = f.decrypt(message)

    return(decrypted_message)

def decryptMessage(StringToDecrypt):
    decryptedMessage = decrypt_message(StringToDecrypt)
    return decryptedMessage

def loginToRoster(chrome):
    credentials = readXML()
    user = decryptMessage(credentials[0])
    pw = decryptMessage(credentials[1])

    userName = chrome.find_element_by_id('UserName')
    userName.send_keys(user)
    password = chrome.find_element_by_id('Password')
    password.send_keys(pw)

在元组“credentials”中有2个加密字符串。
请帮助-已经尝试了所有更改格式的方法,但没有机会。

inn6fuwd

inn6fuwd1#

你在哪里定义的 load_key() 在解密消息函数中。它不是一个方法,只是一个未定义的函数。您可能会收到该错误,因为密钥无效,因为您没有收到保存的密钥。

相关问题