使用Django check_password()得到了这个错误,在数据库中我使用hash密码存储了make_password()导入的必需语句
from django.contrib.auth.hashers import make_password,check_password
给行错误为
password = check_password(pas, fetchRes[0][3])
这是我的密码
def signin(request):
res=""
login_failed = False
conn = sql.connect(host="localhost",user="root",password="",database="agroxpert")
cur = conn.cursor()
if request.method=="POST":
met=request.POST
aid=met['aid']
pas=met['pas']
inp=(aid,)
cur.execute('''SELECT * from admin where AID=%s''',inp)
fetchRes = cur.fetchall()
password = check_password(pas, fetchRes[0][3])
if password and len(fetchRes) == 1:
request.session['FID']=aid
login_failed = False
conn.commit()
conn.close()
return HttpResponseRedirect('administration/')
else:
login_failed = True
res = "Unable to Signin Password or Admin Id entered is incorrect"
print(res)
return render(request,'admin.html',{"res":res,"failed":login_failed})
以下是错误:
内部服务器错误:/sign 回溯(最近一次呼叫最后一次): 文件“C:\Users\LENOVO\project\env\lib\site packages\django\core\handlers\exception.py”,第47行,在内部 响应=获取响应(请求) 文件“C:\Users\LENOVO\project\env\lib\site packages\django\core\handlers\base.py”,第181行,在get\U响应中 响应=包装的回调(请求,*回调参数,**回调参数) 文件“C:\Users\LENOVO\project\AgroXpert\login\views.py”,第91行,登录 密码=检查密码(pas,fetchRes[0][3]) 文件“C:\Users\LENOVO\project\env\lib\site packages\django\contrib\auth\hasher.py”,第49行,检查密码 必须更新=哈希值已更改或首选。必须更新(编码) 文件“C:\Users\LENOVO\project\env\lib\site packages\django\contrib\auth\hasher.py”,第272行,必须更新 算法,迭代,salt,hash=encoded.split(“$”,3) ValueError:没有足够的值来解包(预期值为4,实际值为3)
目前没有回答
相关问题 更多 >
编程相关推荐