你好,我是django项目的开发人员,必须检查我的开发人员还可以。
为此,我必须以用户身份连接自己,但我只有他的电子邮件而不是他的密码。我在table User
中发现了该电子邮件和密码,但是密码以此开头:pbkdf2_sha256 ...
所以我猜密码是加密的。有没有一种更简单的方法可以做到这一点?
谢谢您的帮助!
答案 0 :(得分:1)
根据创建新用户时密码的哈希方式,您可以将用户的哈希值替换为另一个哈希值:
如果以相同方式生成哈希,则可以使用其他用户的密码登录。
然后,完成后,还原数据库中的更改。
希望有帮助。
答案 1 :(得分:0)
django中的密码是一种加密方式,因此无法解密,因此无法从数据库的用户表中查找任何用户的实际密码。
如果要代表其他用户登录而不必知道他们的密码,则可以编写一些复杂的代码来实现此目的,或者使用第三方程序包。
django-hijack看起来不错。它的docs对如何使用它有很好的解释,因此在这里我不再赘述。如果您不喜欢此软件包,则可以查看为此目的的软件包列表here on djangopackages并选择您喜欢的软件包。
首先完成Installation和After Installation步骤。
向/hijack/<user_id>
发送请求,其中<user_id>
是表id
的列user
。如果您尚未更新模型用户的字段ID,则该字段ID将为1、2、3,...。因此,该网址将类似于/hijack/1/
如果要通过用户名劫持,请向/hijack/username/<username>
发出发布请求。例如。 /hijack/username/awesome_username/
如果您想通过用户的电子邮件劫持,请向/hijack/email/<user email>/
发出发布请求。例如。 /hijack/email/awesome@email.com/
以超级用户身份对这些网址之一发出发布请求后,您将被重定向到settings.py中指定的HIJACK_LOGIN_REDIRECT_URL