Mwi*_*Tim 0 md5 sha1 symfony laravel laravel-4
旧symfony系统中的用户表具有以下列:
email | algorithm | salt | password
--------------------+-------------+-----------------------------------+-------------
techytimo@gmail.com | sha1 | ea579e44dd150e5ba6680d6a3cee26b4 | f48598ad17acf18583d8499d7c6abc430929ae49
Run Code Online (Sandbox Code Playgroud)
我使用laravel 4创建的新系统包含以下列:
email | password
--------------------+-----------------------------------------------------------
techytimo@gmail.com | $2y$08$Zz3rVIW4qJFd5IdTfzpw3OrH0HxGO8BrBxfonIQCvU33/yWQkUAe
Run Code Online (Sandbox Code Playgroud)
如何将3000个帐户的密码从旧系统导入新系统而无需用户再次注册?
另外,使用相同格式的laravel 4加密我的密码的方法也会有所帮助.
解决方法是在Laravel中扩展Auth模块,以实现Symfony的哈希解决方案.
重写Auth::attempt(),以您希望的方式散列您的密码,将起作用.
同样Hash::X,您必须在Auth类中重写一个函数以同样的方式散列新用户密码.
如何实现哈希方法:
在文件夹名称库中创建一个库到app,然后创建你的ServiceProvider:
库\ SymfonyHasherServiceProvider.php
use Illuminate\Support\ServiceProvider;
class SymfonyHasherServiceProvider extends ServiceProvider {
public function register()
{
$this->app->bind('hash', function()
{
return new SymfonyHasher;
});
}
}
Run Code Online (Sandbox Code Playgroud)
然后,创建你的hasher,这将是Symfony哈希方法的副本:
库\ SymfonyHasher.php
class SymfonyHasher implements Illuminate\Hashing\HasherInterface {
public function make($value, array $options = array())
{
/* make your hash here */
}
public function check($value, $hashedValue, array $options = array())
{
return $hashedValue == $this->make($value);
}
}
Run Code Online (Sandbox Code Playgroud)
替换"照亮\散列\ HashServiceProvider"与"SymfonyHasherServiceProvider"在服务提供商阵列中app.php配置,再加入"应用/库"自动装载类映射在composer.json
我不知道Symfony是如何制作哈希的,所以你必须搜索Symfony如何使哈希abd在你需要的时候实现它.
| 归档时间: |
|
| 查看次数: |
4214 次 |
| 最近记录: |