如何在PHP中复制django密码验证函数?

如何在PHP中复制django密码验证函数?,php,django,hash,passwords,encode,Php,Django,Hash,Passwords,Encode,我需要在php中检查密码的有效性。密码在django中使用pbkdf2哈希器进行哈希,哈希算法为sha256 我刚刚用Python和PHP做了一个简单的测试 在Python中: >>> from django.utils.crypto import pbkdf2 >>> import base64, hashlib >>> hash = pbkdf2("test_password","myHash", 10000, 32, hashlib.

我需要在php中检查密码的有效性。密码在django中使用pbkdf2哈希器进行哈希,哈希算法为sha256


我刚刚用Python和PHP做了一个简单的测试

在Python中:

>>> from django.utils.crypto import pbkdf2
>>> import base64, hashlib
>>> hash = pbkdf2("test_password","myHash", 10000, 32, hashlib.sha256)
>>> hash.encode('base64').strip()
'lRKgL0zAmPwIMPNhTy1wJRXWZQwcHlbIW3glYA4LPU8='
在PHP中:

<?php
include 'pbkdf2.php';
echo base64_encode(pbkdf2('sha256', 'test_password', 'myHash', 10000, 32, true));
// result is: lRKgL0zAmPwIMPNhTy1wJRXWZQwcHlbIW3glYA4LPU8=
?>


两个测试的结果都是相同的,因此哈希代码没有问题。您确定Django测试使用的是pbkdf2算法吗?您的用户输入与测试密码示例相同?

作为旁注-仅用django/python编写一小部分并将成功或失败的JSON编码消息返回给php会有多糟糕?如果您可以提供一个哈希密码示例,那么我们可以一起查看,以检查如何在php中复制它。I真不敢相信我为此挣扎了这么久-我忘了我在使用旧版本的数据库进行测试,而且自从数据库备份后密码已经更改。
<?php
include 'pbkdf2.php';
echo base64_encode(pbkdf2('sha256', 'test_password', 'myHash', 10000, 32, true));
// result is: lRKgL0zAmPwIMPNhTy1wJRXWZQwcHlbIW3glYA4LPU8=
?>