小编Rob*_*Rob的帖子

将 sha512 编码器与 symfony2 in_memory 安全提供程序一起使用

我正在尝试配置我的 symfony2 应用程序以将 sha512 密码编码器与 in_memory 安全提供程序一起使用,但我无法让它工作。我在登录时收到臭名昭著的“凭据错误”错误。与这里的大多数问题不同,我不想从任何数据库中获取用户。我不想使用 FOSUserBundle。我想要的只是用 sha512 哈希替换我的 security.yml 中的明文密码。

根据http://symfony.com/doc/current/book/security.html#encoding-the-user-s-password这应该就像设置编码器并用哈希替换明文密码一样简单,这样就我试图做的:

安全.yml:

security:
    encoders:
        Symfony\Component\Security\Core\User\User: sha512

    providers:
        in_memory:
            memory:
                users:
                    admin: { password: $6$randomsalt$mbd3sS15ibE.W7hkLqfQ0LNEQsUod7BOUD67g/oIb8uhqGfyAzaga3vgGaRJZn67VdHHfn.tnkKY9ffDVXw3C., roles: [ 'ROLE_ADMIN' ] }
Run Code Online (Sandbox Code Playgroud)

密码是“admin”,盐是“randomsalt”,散列是由 mkpasswd 生成的:

mkpasswd -m sha-512 admin randomsalt
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?symfony2 是否希望散列采用其他格式?

编辑:我也尝试过的事情:

  • 使用 PHP 通过 PHP 生成哈希 crypt($password, "$6$".$salt)
  • encode_as_base64在安全编码器上切换真/假
  • 指定要使用的迭代次数(默认 5000)

结果是一样的:“坏凭据”。

security passwords encoding sha512 symfony

2
推荐指数
1
解决办法
4605
查看次数

标签 统计

encoding ×1

passwords ×1

security ×1

sha512 ×1

symfony ×1