Php 接受由数据库中的哈希加密的用户名

Php 接受由数据库中的哈希加密的用户名,php,laravel,hash,passwords,Php,Laravel,Hash,Passwords,创建用户时,用户名和密码保存在散列中。现在我想我的用户名和密码登录时,可以由系统读取。我用的是拉威尔 下面是我的用户控制器代码 public function postSignin() { if (Auth::attempt(array('username'=>Input::get('username'), 'password'=>Input::get('password')))) { return Redirect::to('admin/da

创建用户时,用户名和密码保存在散列中。现在我想我的用户名和密码登录时,可以由系统读取。我用的是拉威尔

下面是我的用户控制器代码

public function postSignin() {
        if (Auth::attempt(array('username'=>Input::get('username'), 'password'=>Input::get('password')))) {
            return Redirect::to('admin/dashboard')->with('message', 'You are now logged in!');
        } else {
            return Redirect::to('users/login')
             ->with('message', 'Your username/password combination was incorrect')
             ->withInput();
            }
        }

区分大小写不需要散列。在数据库表中使用非_CI编码。CI代表不区分大小写


假设您仍然希望对用户名进行散列,那么您只需要对用户输入(用户名)进行散列,与将其存储在数据库中的方式相同,然后再将其传递给身份验证脚本

据我所知,bcrypt使用的是单向散列算法。因此,作为一个简短的回答,我们不能从散列中生成用户名/密码。用户名应该存储在纯文本中,密码就是散列的内容。不要把它们混在一起。你永远都不能用纯文本读取密码,而散列是单向的。嗨,迈克。我们的软件质量保证要求登录时用户名应区分大小写,因此我决定也加密用户名。那么“区分大小写”与加密它有什么关系?你知道登录时用户名区分大小写吗。例如,如果我的用户名为all caps,那么当我登录时,系统只能接受大写字母的用户名。