我想使用symfony 2.5.10 security,以便从使用python/django security创建的用户登录。数据库中的密码以以下格式加密:
pbkdf2_sha256$12000$dVPTWPll8poG$3weiWwv4P/2GgYjeJBeUN/Hlbe1UByCj7ZRVX93FBZE=
我想这样做,因为我希望用户对新应用程序有相同的密码。
您必须自己编写密码编码器。Django使用的密码格式如下:
<algorithm>$<iterations>$<salt>$<hash>
这意味着哈希使用PBKDF2算法与SHA256哈希,12000次迭代,dVPTWPll8poG
盐(对于这个特定的密码)和密码哈希本身是3weiWwv4P/2GgYjeJBeUN/Hlbe1UByCj7ZRVX93FBZE=
(BASE64编码)。
Symfony有密码编码器的PBKDF2,但它不支持Django格式。你可以修改内置的密码编码器。你必须从数据库中的字符串中提取迭代、盐和pbkdf散列。其余部分与默认编码器相同。
https://github.com/symfony/security-core/blob/2.5/Encoder/Pbkdf2PasswordEncoder.php这是关于如何编写自己的密码编码器的另一个stackoverflow答案。
Symfony2创建自己的编码器存储密码
希望对你有帮助。
Django使用散列存储用户密码。根据您的settings.PASSWORD_HASHERS
设置,它将使用以下功能之一。
你必须在php中移植相同的哈希算法