【问题标题】:Decrypt python/django password with Symfony 2.5 (using symfony security)使用 Symfony 2.5 解密 python/django 密码(使用 symfony 安全性)
【发布时间】:2015-07-13 15:37:56
【问题描述】:

我想使用 symfony 2.5.10 安全性以便从使用 pyhton/django 安全性创建的用户登录。 db 中以这种格式加密的密码:

pbkdf2_sha256$12000$dVPTWPll8poG$3weiWwv4P/2GgYjeJBeUN/Hlbe1UByCj7ZRVX93FBZE=

我想这样做是因为我希望用户对新应用使用相同的密码。

【问题讨论】:

    标签: php python django symfony encryption


    【解决方案1】:

    您必须自己编写密码编码器。 Django 使用以下密码格式:

    <algorithm>$<iterations>$<salt>$<hash>
    

    这意味着哈希使用带有 SHA256 哈希的 PBKDF2 算法,12000 次迭代,dVPTWPll8poG salt(对于此特定密码),密码哈希本身是 3weiWwv4P/2GgYjeJBeUN/Hlbe1UByCj7ZRVX93FBZE=(BASE64 编码)。

    Symfony 有 PBKDF2 的密码编码器,但它不支持 Django 格式。您可以只修改内置密码编码器。您必须从数据库中的字符串中提取迭代、盐和 pbkdf 哈希。其余与默认编码器相同。

    https://github.com/symfony/security-core/blob/2.5/Encoder/Pbkdf2PasswordEncoder.php

    这是关于如何编写自己的密码编码器的另一个 stackoverflow 答案。

    Symfony2 create own encoder for storing password

    希望对您有所帮助。

    【讨论】:

    • 谢谢!现在是时候尝试一下了。
    • symfony 内置密码编码器的格式是什么? django密码用什么格式存储?
    【解决方案2】:

    Django 使用散列来存储用户密码。根据您的settings.PASSWORD_HASHERS 设置,它将使用these 函数之一。

    您必须在 php 中移植相同的哈希算法

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 1970-01-01
      • 2012-06-18
      • 2019-08-13
      • 2014-11-21
      • 2021-08-15
      • 2011-06-29
      • 2018-11-13
      • 2014-01-22
      相关资源
      最近更新 更多