在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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...