我试图在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
$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