Php 使用md5密码登录Symfony2
您好,我正在尝试使用Symfony2登录,并在md5中使用密码登录数据库表,无盐字段。我有很多用户,我不能改变它 当我发送带有无效电子邮件的表单时,登录似乎工作正常,它返回正确的消息“坏凭据”。但是,当我发送带有良好电子邮件的表单时,它会显示“提交的密码无效” 怎么了 我配置防火墙:Php 使用md5密码登录Symfony2,php,symfony,Php,Symfony,您好,我正在尝试使用Symfony2登录,并在md5中使用密码登录数据库表,无盐字段。我有很多用户,我不能改变它 当我发送带有无效电子邮件的表单时,登录似乎工作正常,它返回正确的消息“坏凭据”。但是,当我发送带有良好电子邮件的表单时,它会显示“提交的密码无效” 怎么了 我配置防火墙: security: encoders: Usuari\BackendBundle\Entity\Usuari: algorithm: md5 在Usuari实体中实
security:
encoders:
Usuari\BackendBundle\Entity\Usuari:
algorithm: md5
在Usuari实体中实现UserInterface,无需任何限制
public function getUsername()
{
return $this->email;
}
public function getSalt() {
return '';
}
public function getPassword()
{
return $this->clau;
}
public function getRoles()
{
return array('ROLE_ADMIN');
}
public function eraseCredentials() { }
public function equals(UserInterface $user)
{
return $this->email === $user->getUsername();
}
和安全控制/登录路径:
namespace Mes\BackendBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Security\Core\SecurityContext;
class SecurityController extends Controller
{
public function loginAction()
{
$request = $this->getRequest();
$session = $request->getSession();
// get the login error if there is one
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
}
return $this->render('MeBackendBundle:Security:login.html.twig', array(
// last username entered by the user
'last_username' => $session->get(SecurityContext::LAST_USERNAME),
'error' => $error,
));
}
}
?>
将
算法:sha1
更改为算法:md5
将算法:sha1
更改为算法:md5
我处于类似的情况。我所做的是创建了单独的编码器,以便旧用户可以使用旧算法登录,而新用户可以使用symfony的默认编码器获得更安全的密码
我发布了一个非常广泛的答案我当时也处于类似的情况。我所做的是创建了单独的编码器,以便旧用户可以使用旧算法登录,而新用户可以使用symfony的默认编码器获得更安全的密码
我发布了一个非常广泛的答案托马斯,这个解决方案似乎很好,但它更复杂
最后,我决定使用其他编码函数和salt字段从数据库中重新生成所有密码。我将向所有用户发送一封电子邮件,其中包含一个允许这些用户更改其密码的链接。托马斯,这个解决方案似乎很好,但它更复杂
最后,我决定使用其他编码函数和salt字段从数据库中重新生成所有密码。我将向所有用户发送一封电子邮件,其中包含一个链接,允许这些用户更改其密码不要说您无法更改密码。我们将一个站点从Drupal迁移到我们的Symfony2系统,拥有超过10万用户,我们选择在用户首次登录新系统后强制更新密码,这样我们就可以尽快摆脱MD5。MD5不好,是的。顺便说一句,看看我的。因为我没有用户的真实密码。我只有md5散列。大卫,检查托马斯K的答案。不要说你不能改变它。我们将一个站点从Drupal迁移到我们的Symfony2系统,拥有超过10万用户,我们选择在用户首次登录新系统后强制更新密码,这样我们就可以尽快摆脱MD5。MD5不好,是的。顺便说一句,看看我的。因为我没有用户的真实密码。我只有md5哈希。大卫,检查托马斯K的答案。对不起,我的思想背叛了我。我更正了这个问题,md5不起作用。请尝试
md5()
您尝试登录的密码,并检查它是否与数据库中的密码相同。对不起,我的大脑背叛了我。我更正了这个问题,因为md5不起作用,请尝试使用您尝试登录的密码md5()
,并检查它是否等于数据库中的密码。