无效盐 - 烧瓶上的 bcrpyt

时间:2021-02-05 04:10:04

标签: python flask path

我在窗口上的烧瓶项目。

我正在尝试使用 bcrpyt 登录,但它抛出了无效的盐错误。

login function on index.py

@main.route('/login', methods=['GET', 'POST'])
def login():
    print("in login function ")
    logging.info('login start')
    if request.method == 'POST' and 'signin_username' in request.form and 'signin_password' in request.form:

        # assign values on parameter
        user_id = request.form['signin_username']
        user_pw = request.form['signin_password']

        userInfo = madb.getUser(user_id)
        print(userInfo)
        print('userInfo length',len(userInfo))
        if(len(userInfo) > 0):
            # password encrypt
            
            from run import bcrypt
            
            pw_hash = bcrypt.generate_password_hash(user_pw).decode('utf-8')
            
            print('pw_hash',pw_hash)
            check_pw = userInfo[0][6]  # db password.
            print('check_pw',check_pw)
            if bcrypt.check_password_hash(check_pw, user_pw) == True:
                user = UserMixin(userInfo)
                login_user(user)
                print('login success!')
                return redirect('/')

当我运行项目并且网页运行正常时,直到登录页面,当我输入正确的 ID 和密码时,它会在终端上打印出 userInfo Length。 但它不会继续

pw_hash = bcrypt.generate_password_hash(user_pw).decode('utf-8')

并抛出跟随错误

[2021-02-05 11:58:26,110] ERROR in app: Exception on /login [POST]
Traceback (most recent call last):
  File "C:\Users\USER\envs\facnroll_2\lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\USER\envs\facnroll_2\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\USER\envs\facnroll_2\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\USER\envs\facnroll_2\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "C:\Users\USER\envs\facnroll_2\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\USER\envs\facnroll_2\lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "c:\facnroll_aws_210128\websvr\app\main\index.py", line 487, in login
    check_pw = userInfo[0][6]  # db password.
  File "C:\Users\USER\envs\facnroll_2\lib\site-packages\flask_bcrypt.py", line 193, in check_password_hash
    return safe_str_cmp(bcrypt.hashpw(password, pw_hash), pw_hash)
  File "C:\Users\USER\envs\facnroll_2\lib\site-packages\bcrypt\__init__.py", line 105, in hashpw
    raise ValueError("Invalid salt")
ValueError: Invalid salt

我查看了 invalid salt 错误,但不知道如何解决。

附上项目树

project directory

from run import bcrypt 上存在未解决的导入错误,因此 我尝试添加

sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(os.path.abspath(os.paht.dirname(__file__))))))

高于 from run import bcrypt 但它不能解决未解决的导入错误或 invalid salt 错误。

有人请帮忙。

先谢谢了。

0 个答案:

没有答案