我如何在 Laravel 中散列用户名
How can i hash username in Laravel
我使用 Laravel 身份验证并希望散列所有用户数据。
我如何在 Laravel 中散列用户名并像密码一样在登录页面中解码?
我这样编辑注册控制器
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'username' => bcrypt($data['username']),
'password' => bcrypt($data['password']),
]);
}
哈希不同于 encoding/decoding。哈希是一种单向过程,而 decoding/encoding 是一种双向过程。
对于Hash来说,一旦对某些东西进行了hash,你就不能再得到原来的了,但是,如果你使用相同的值再次hash,你将得到相同的hash结果。
对于decode/encode,可以取回原来的值
在 Laravel
默认情况下,密码是散列的,没有加密或编码。
所以,散列用户名不是个好主意。一旦用户名经过哈希处理,您将永远不会知道它是什么。
是的,哈希是一种方式的过程,但您可以对相同类型的过程使用加密。
use Illuminate\Support\Facades\Crypt;
$encrypted = Crypt::encryptString('Hello world.');
$decrypted = Crypt::decryptString($encrypted);
非PHP 接收加密值的客户端将需要反序列化数据。如果您想在不序列化的情况下加密和解密值,您可以使用 Crypt facade 的 encryptString 和 decryptString 方法。
所以总是使用 Crypt Facade,因为所有东西都会自动在后台运行。
我使用 Laravel 身份验证并希望散列所有用户数据。 我如何在 Laravel 中散列用户名并像密码一样在登录页面中解码?
我这样编辑注册控制器
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'username' => bcrypt($data['username']),
'password' => bcrypt($data['password']),
]);
}
哈希不同于 encoding/decoding。哈希是一种单向过程,而 decoding/encoding 是一种双向过程。
对于Hash来说,一旦对某些东西进行了hash,你就不能再得到原来的了,但是,如果你使用相同的值再次hash,你将得到相同的hash结果。
对于decode/encode,可以取回原来的值
在 Laravel
默认情况下,密码是散列的,没有加密或编码。
所以,散列用户名不是个好主意。一旦用户名经过哈希处理,您将永远不会知道它是什么。
是的,哈希是一种方式的过程,但您可以对相同类型的过程使用加密。
use Illuminate\Support\Facades\Crypt;
$encrypted = Crypt::encryptString('Hello world.');
$decrypted = Crypt::decryptString($encrypted);
非PHP 接收加密值的客户端将需要反序列化数据。如果您想在不序列化的情况下加密和解密值,您可以使用 Crypt facade 的 encryptString 和 decryptString 方法。
所以总是使用 Crypt Facade,因为所有东西都会自动在后台运行。