在SQL中直接手动创建laravel哈希

时间:2015-02-09 11:05:49

标签: mysql laravel

我有一个使用Laravel的Hash :: make()函数对用户密码进行哈希处理的网站。
我现在需要直接在DB(MySQL)中手动创建用户。有没有办法只使用原始SQL为用户创建哈希密码?

4 个答案:

答案 0 :(得分:8)

您可以通过php artisan tinker创建所需的密码:

  1. 打开项目根目录上的终端。
  2. 然后写php artisan tinker
  3. 然后echo Hash::make('password');
  4. 您将看到哈希密码。即使使用sql查询,您也可以使用该密码执行任何操作。

答案 1 :(得分:3)

不是真的,我很害怕。 Laravel使用Bcrypt,它在MySQL中不可用。此外,在原始SQL中执行此操作是一种不好的做法,因为密码可能最终出现在服务器查询日志中。抱歉。 :/

答案 2 :(得分:0)

您可以使用Laravel中的DB Seed选项并以这种方式添加您的用户。 通过DB种子,您可以使用哈希方法来散列密码。

class UserTableSeeder extends Seeder {

    public function run()
    {  
        DB::table('users')->delete();
            User::create(array(
                'username' => 'user',
                'password' => Hash::make('password')
            ));
    }
}

但如果只能使用原始SQL,我就没有解决方案。

有关DB Seed的详细信息,请参阅以下页面。 http://laravel.com/docs/4.2/migrations#database-seeding

答案 3 :(得分:0)

否!

但你可以编写类似下面的函数

<?php
// Extend the base controller etc..
public function insertUsers( $passwordArray ){
    $passwordArray = array("user1" => "pass1", "user2" => "pass2");
    foreach ($passArray as $user => $pass) {
        $password = Hash::make($pass); // Laravel function
        dbQuery("INSERT INTO users (`user`, `password`) VALUES ($user, $password);
    }
}