sha1()
私は、ソルトなしで関数でパスワードを暗号化するレガシーアプリケーションを持っています。
現在、そのサイトは Symfony2 と FOSUserBundle に変換されていますが、それらを新しいデータベースに転送するにはどうすればよいですか?
sha1()
私は、ソルトなしで関数でパスワードを暗号化するレガシーアプリケーションを持っています。
現在、そのサイトは Symfony2 と FOSUserBundle に変換されていますが、それらを新しいデータベースに転送するにはどうすればよいですか?
私は同じ問題を抱えていました
@iamdtoで説明されているように、エンコーダーをオーバーライドするだけです
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface:
id: your.custom.encoder
あなたのクラスは
use Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface;
class CustomEncoder implements PasswordEncoderInterface
{
public function encodePassword( $raw, $salt ) {
//do not use salt here
return sha1($raw);
}
public function isPasswordValid( $encoded, $raw, $salt ) {
return $encoded === $this->encodePassword( $raw, $salt );
}
}
レガシーユーザーを取得し、次回のログイン時に情報を更新するには、列「バージョン」を追加する必要があります
やってみました :
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha1
これらの参照も見てください。