使用Symfony 2.5解密python/django密码(使用Symfony security)


Decrypt python/django password with Symfony 2.5 (using symfony security)

我想使用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中移植相同的哈希算法