Python在字符串中获取字符串

2024-09-28 16:58:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从Flask中使用check\u password\u hash,从MySQL数据库中获取一个值。我可以从我的数据库获取密码,但当我使用时,返回一个假值。这是我的密码:

class AuthUser(Resource):
    def post(self):
        try:
            parser = reqparse.RequestParser()
            parser.add_argument('username', type=str, help= 'Username')
            parser.add_argument('password', type=str, help= 'Password')

            args = parser.parse_args()

            _userUsername = args['username']
            _userPassword = args['password']


            conn = mysql.connect()

            cursor = conn.cursor()
            cursor.callproc('gsAuthUser', (_userUsername,))
            data = cursor.fetchall()
            cursor.callproc('gsGetPassword', (_userUsername,))
            pwd = cursor.fetchall()
            print(pwd) 

            _userPassDecrypt = check_password_hash(pwd, _userPassword)

            print(_userPassDecrypt) 



        except Exception as e:
            return {'error': str(e)}

         api.add_resource(CreateUser, '/CreateUser')  api.add_resource(AuthUser, '/AuthUser')

下面是输出:

((u'pbkdf2:sha256:50000$QtDUZdwY$fa7d211dc9e3db9513b7e11096e257272b2edde3af3e2a0d33ca5cba53a942c7',),)

我想我只需要sha256后面的值:但是我拿不到它。 有人能帮我吗?你知道吗

谢谢。你知道吗


Tags: add数据库parser密码checkpwdusernameargs
2条回答

现在起作用了!谢谢! 以下是我所做的:

你知道吗游标.callproc('gsGetPassword',(\u userUsername,)) 功率因数=游标.fetchall()

    pwd_str = str(pwd_db)  
    pwd = pwd_str.split('(')[2][2:-5] 
    _userPassDecrypt = check_password_hash(pwd, _userPassword)


    if (len(data) > 0):
        if(_userPassDecrypt):
       # if(str(data[0][2]) == _userPassDecrypt):
            return {'StatusCode': '200', 'UserID': str(data[0][0])} 
        else:
            return {'StatusCode': '100', 'Message':'Authentication Failure'}

except Exception as e:
    return {'error': str(e)}

这应该管用,但可能有更好的方法:

except Exception as e:
    return {'error': str(e.split(':')[2][:-5])}

相关问题 更多 >