FERNET错误:cryptography.fernet.InvalidToken

问题描述

我正在使用python Fernet库,因为我需要在数据库中加密并存储一个密码,然后我需要查询加密的密码并将其解密以将其传递给变量,这是应用程序需要的FTP密码做一些事情。 由于我只需要在数据库中存储密码,因此我运行加密代码将其存储在数据库中。 然后,我注释该代码,并使用我创建的函数crypto_pwd对其进行解密,但返回错误信息无效令牌。任何想法?请编辑我的代码以防万一。

这是store_user_db.py

from flask import Flask
from flask_sqlalchemy import sqlAlchemy
from cryptography.fernet import Fernet

app = Flask(__name__)
app.config["sqlALCHEMY_DATABASE_URI"] = "sqlite:///data-users2.sqlite"
db = sqlAlchemy(app)

key = Fernet.generate_key()
f = Fernet(key)

class User(db.Model):
    #CREATE THE TABLE; DEFINE COLUMNS; ENCRYPT PWD
    __tablename__ = "user"
    id = db.Column(db.Integer(),primary_key=True,autoincrement=True)
    username = db.Column(db.String(64),unique=True)
    pwd = db.Column(db.LargeBinary(),unique=True)

    def __init__(self,id,username,pwd):
        token = f.encrypt(pwd)
        self.id = id
        self.username = username
        self.pwd = f.encrypt(pwd)

#DECRYPT FUNCTION
def decrypt_pwd():
    p = db.session.query(User).filter_by(username="ita_itf").first()
    DESTINATION_PSW = f.decrypt(p.pwd)
    return DESTINATION_PSW

这里我将pwd存储在数据库中,这一切都很好

#store FTP pwd I ONLY RUN THIS Ones THEN I COMMENT
#DICP_FTP_DESTINATION_PSW = self.submit_pwd()
#db.drop_all()  # destroy all the tables.
#db.create_all()  # create all fresh new tables.
#ftp = User(id = 1,username ="ita_itf",pwd = DICP_FTP_DESTINATION_PSW)
#db.session.add(ftp)
#db.session.commit()

这是问题所在,我在其他.py文件调用了crypto_pwd函数

from store_user_db import decrypt_pwd
DICP_FTP_DESTINATION_PSW = decrypt_pwd()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)