Python 如何手动使用make_密码和check_密码?

Python 如何手动使用make_密码和check_密码?,python,django,Python,Django,我尝试手动使用make_password和check_password功能。我在我的一个观点中这样做(只是出于测试原因): 所以,当我进入enter页面时,我看到了以下内容: pbkdf2_sha256$15000$fmX24ZPCKBdA$fvpfYMacxOi44QFDeLLfRRUN85RweMJTfxxoC+YS2XE= 假设我将此输出存储在一个文本文件中(同样出于测试原因)passwords.txt格式为: 1 pbkdf2_sha256$15000$fmX24ZPCKBdA$

我尝试手动使用
make_password
check_password
功能。我在我的一个观点中这样做(只是出于测试原因):

所以,当我进入
enter
页面时,我看到了以下内容:

pbkdf2_sha256$15000$fmX24ZPCKBdA$fvpfYMacxOi44QFDeLLfRRUN85RweMJTfxxoC+YS2XE=
假设我将此输出存储在一个文本文件中(同样出于测试原因)
passwords.txt
格式为:

1    pbkdf2_sha256$15000$fmX24ZPCKBdA$fvpfYMacxOi44QFDeLLfRRUN85RweMJTfxxoC+YS2XE= 
2    ....hash for another user   
在第二次迭代中,我想检查我的密码(让它存储在请求变量中的GET['pass']),但不知道如何:

def login(request):
    # How to use check_password here to check against data stored in
    # passwords.txt
    # it should either output False
    # or an id, like 1 in our test case for password 'admin'.
我想再次强调,我想手动使用它,只是为了理解这些函数背后的逻辑。因此,我现在不想让Django帮我做这件事。

您需要使用,并将未加密的密码和加密的字符串传递给它,如果它们匹配,它将返回
True
,如果不匹配,则返回
False

因此



请注意,您永远不想使用
GET
方法提交密码,因为使用
GET
密码将无限期地存储在日志和浏览器历史记录中。

对于2.1版本@user3821178,您可以编写答案
def login(request):
    # How to use check_password here to check against data stored in
    # passwords.txt
    # it should either output False
    # or an id, like 1 in our test case for password 'admin'.
encrypted = 'pbkdf2_sha256$15000$fmX24...'

if check_password(request.POST['pass'], encrypted):
    print("Login successful")