微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在php中使用django密码进行身份验证

我试图在PHP中的同一台服务器上创建一个登录系统,通过django创建注册.

我不知道django如何加密密码.
我在数据库中可以看到的密码是这样的:

pbkdf2_sha256$10000$qlzlSSgHottd$5hV9BfLpzyAS62KZhvRydbnagr1rYf29VbkZbfjipV4=

现在我想用PHP创建一个登录系统,它使用上面的散列指定密码进行验证.所以请帮我解释如何为PHP创建登录系统

注意:数据库已经设置好,我有数千名用户正在使用它
我需要对我正在构建的其他系统进行身份验证

解决方法:

您可能希望让Django为您处理这个问题,而不是在PHP中重新创建散列过程.

使用此脚本从原始密码中获取哈希值:

django_password_hash.py:

import sys
from django.conf import settings
settings.configure()
from django.contrib.auth import hashers
raw_password = sys.argv[1]
try:
    salt = sys.argv[2]
except IndexError:
    salt = None
hash = hashers.make_password(raw_password, salt=salt)
sys.stdout.write("%s\n" % hash)
sys.stdout.flush()
sys.exit(0)

然后从PHP调用它,如下所示:

<?PHP
    $password_hash = shell_exec('python /path/to/django_password_hash.py ' . $raw_password . ' ' . $salt);
    // compare the value in $password_hash to database, etc...
    // account for the "\n" at the end of $password_hash

别忘了http://www.php.net/manual/en/function.escapeshellcmd.php

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐