【问题标题】:Can I use PHP-hashed password with Django?我可以在 Django 中使用 PHP 哈希密码吗?
【发布时间】:2022-01-03 09:40:51
【问题描述】:

我正在构建一个使用 PHP 后端的 Android 应用程序。因此,每次用户注册并输入密码时,都会使用 bcrypt 对其进行哈希处理。 随后,我在网络上构建了一个基于 Django 的管理面板。 在 Django 中构建/自定义身份验证系统的最佳方法是什么,以便它可以使用通过 bcrypt 生成的密码进行身份验证?

重要提示:我无法更改我的 Android 应用的 PHP 后端。

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: php android django


【解决方案1】:

Bcrypt 不是 php 特定的密码散列函数。 Django 文档清楚地描述了如何使用bcrypt 密码加密。

您必须使用第三方bcrypt library。这可以通过运行 python -m pip install django[bcrypt] 来完成,它等效于 python -m pip install bcrypt(以及 Django 的 setup.cfg 中的任何版本要求)。

修改PASSWORD_HASHERS,先列出BCryptSHA256PasswordHasher

【讨论】:

  • 我在 php 中的代码是 $hash = password_hash($pass, PASSWORD_BCRYPT) ,它会生成一个以 $2y$ 开头的密码。同样,如果我在 Django 中使用 BCryptSHA256PasswordHasher,它将生成一个以 bcrypt_sha256$$2b$12$ 开头的密码,这两个密码散列是相同的,但工作方式不同。我该如何解决这个问题?
猜你喜欢
  • 2013-03-24
  • 2011-02-11
  • 2013-11-10
  • 2021-12-12
  • 2012-04-08
  • 2011-06-18
  • 1970-01-01
  • 2016-07-26
  • 2015-05-12
相关资源
最近更新 更多