php - symfony2 和 symfony1 应用相同的密码加密

标签 php security symfony symfony-1.4

我有一个带有 sfGuardUser 插件的 symfony1 应用程序。我需要在我的新 symfony2 应用程序中使用相同的数据库。

我应该如何定义密码编码器以匹配 symfony1 编码的密码?

最佳答案

如果您当时没有提供不同的编码算法,那么 Symfony 1.x 将使用 sha1($salt.$rawPassword)。所以你的 PasswordEncoder 应该是这样的:

use Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface;

class PasswordEncoder implements PasswordEncoderInterface
{
    public function encodePassword($raw, $salt)
    {
        return sha1($salt.$raw);
    }

    public function isPasswordValid($encoded, $raw, $salt)
    {
        return $this->encodePassword($raw, $salt) === $encoded;
    }
}

祝你好运!

关于php - symfony2 和 symfony1 应用相同的密码加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14213053/

相关文章:

javascript - Onclick 函数打开新窗口并计算点击次数

java - Tomcat 9.0.2 - 无法使用正确配置的 tomcat-users.xml 访问服务器状态和其他页面

web-services - 保护使用 Web 服务的移动应用程序的最佳实践

php - 在 Symfony 4 应用程序中,如何将环境变量传递给服务类?

symfony - Assetic Symfony2 less+compress 过滤器

php - 将两个简单的 SQL 查询转换为 Doctrine

javascript - 解析 dom 元素时 JqueryUI slider 不工作

php - iOS与mysql数据库连接的安全性

php - 教义 : How to unset (SET NULL) OneToMany relationship

javascript - 如何从强制门户重定向到默认浏览器(cna 浏览器)