- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试手动使用 make_password
和 check_password
函数。在我的一个观点中,我是这样做的(只是出于测试原因):
#iteration one:
def enter(request):
res = make_password('admin')
return HttpResponse(res)
所以,当我转到 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
帮我做这件事。
最佳答案
您需要使用 django.contrib.auth.hashers.check_password
, 并将未加密的密码和加密的字符串传递给它,如果匹配则返回 True
,否则返回 False
。
因此
encrypted = 'pbkdf2_sha256$15000$fmX24...'
if check_password(request.POST['pass'], encrypted):
print("Login successful")
请注意,您不想使用 GET
方法提交密码,因为使用 GET
密码将无限期地存储在日志和浏览器历史记录中。
关于python - 如何手动使用 make_password 和 check_password?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29192340/
我有以下表格。在用户最终更改其电子邮件地址之前,如何再次检查用户的密码?即使用户已登录,我也只想确定它确实是用户。只是安全问题。 如何使用 .check_password()? 'EmailChang
我正在尝试设置自定义用户模型,但在尝试对成员进行身份验证时,我的登录页面出现以下错误 /members/login/导入错误 无法导入名称 check_password 我知道 check_passw
我尝试手动使用 make_password 和 check_password 函数。在我的一个观点中,我是这样做的(只是出于测试原因): #iteration one: def enter(reque
尝试编写一个单元测试来检查用户是否输入了正确的密码。 为此使用 Django 的 native 身份验证函数 user.check_password。 问题是 check_password 出于某种原
我有一些测试试图在 API 应用程序中验证我的用户创建过程。 我遇到的问题是,当我尝试验证用户密码是否创建为散列对象时,测试失败。 测试: CREATE_USER_URL = reverse('use
我是 Django 的初学者。我有一个只有 2 个字段的注册表单。用户名和密码。密码使用 pbkdf2_sha256 算法加密。我想使用用户名和密码登录。所以我在登录页面中输入的密码必须使用加密密码进
我是 Django 的初学者。我有一个只有 2 个字段的注册表单。用户名和密码。密码使用 pbkdf2_sha256 算法加密。我想使用用户名和密码登录。所以我在登录页面中输入的密码必须使用加密密码进
我有一个自定义模型,我正在尝试对其进行身份验证: class User(models.Model): #id = models.IntegerField(primary_key=True)
我使用 django all auth 进行登录和注册 View 和模板,但我也想实现更改密码功能,因此默认情况下它有一个我们可以使用的模板 password_change.html ,但我想要一个自
我是一名优秀的程序员,十分优秀!