我如何在Laravel中哈希用户名

问题描述 投票:0回答:2

我使用Laravel身份验证,并希望对所有用户数据进行哈希处理。我如何在Laravel中哈希用户名并在登录页面(如密码)中进行解码?

我这样编辑注册控制器

 protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'username' => bcrypt($data['username']),
            'password' => bcrypt($data['password']),
        ]);
    }
laravel hash passwords username
2个回答
2
投票

哈希与编码/解码不同。哈希是一个单向过程,而解码/编码是一个两向过程。

对于散列,一旦对某些散列进行散列,就无法再获得原始散列,但是,如果使用相同的值并再次进行散列,则将获得相同的散列结果。

对于解码/编码,您可以取回原始值。

默认情况下,在Laravel中,密码是散列的,未加密或编码。

因此,对用户名进行散列是一个坏主意。一旦对用户名进行哈希处理,您将永远不会知道它是什么。


0
投票

是,哈希是一种单向处理,但是您可以对相同类型的处理使用加密。

use Illuminate\Support\Facades\Crypt;

$encrypted = Crypt::encryptString('Hello world.');

$decrypted = Crypt::decryptString($encrypted);

接收加密值的非PHP客户端将需要反序列化数据。如果您想在不进行序列化的情况下对值进行加密和解密,则可以使用Crypt外观的cryptoString和cryptoncrypt方法。

因此,请始终使用土窖外观,因为所有事物都会自动在后台运行。

© www.soinside.com 2019 - 2024. All rights reserved.