gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:13:06 24 4
gpt4 key购买 nike

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

根据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' ] }

密码是“admin”,盐是“randomsalt”,哈希值由 mkpasswd 生成:

mkpasswd -m sha-512 admin randomsalt

为什么这不起作用? symfony2 是否期望哈希值采用其他格式?

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

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

结果是相同的:“凭据错误”。

最佳答案

经过多次尝试和错误,我能够使用的唯一配置是最简单的情况:

security:
encoders:
Symfony\Component\Security\Core\User\User:
algorithm: sha512
encode_as_base64: false
iterations: 1

providers:
in_memory:
memory:
users:
admin: { password: c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec, roles: [ 'ROLE_ADMIN' ] }

这是由 echo -n admin | 获得的无盐密码的单个 sha512 迭代sha512sum 或来自任何各种在线哈希生成器。我无法让它与 PHP 标准 crypt() 或 password_hash() 函数创建的任何内容一起使用。该文档没有指定格式。我的应用程序不以任何其他方式处理用户或密码,我更希望使用 symfony 的安全组件,而无需编写自定义用户实体或密码编码器。对于看似非常基本的事情来说,这变成了巨大的工作量。

关于security - 将 sha512 编码器与 symfony2 in_memory 安全提供程序一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23848168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com