0 レビュー
1 回答
php-Laravel-Auth::sha512で動作しないように試みます
正確なコードをお見せしましょう:
$credentials = array(
'email' => $request->email,
'password' => hash('sha512', $request->password)
);
これでtrue
が返されます:
User::where($credentials)->exists()
ただし、これは false
を返します:
Auth::attempt($credentials)
パスワードの保存にsha512を使用しています。 Auth::attempt
がfalseを返すのはなぜですか?
わからない
0
レビュー
答え :
解決策:
Laravel Hash
ファサードは、保存用の安全なBcryptおよびArgon2ハッシュを提供しますユーザーパスワード。
ただし、次のようにカスタムハッシュを作成できます:
$user = User::where([
'email' => $request->email,
'password' => hash('sha512', $request->password)
])->first();
if($user){
Auth::login($user);
}
Bcryptは、その「作業係数」が調整可能であるため、パスワードのハッシュに最適です。つまり、ハードウェアの能力が上がると、ハッシュの生成にかかる時間が長くなる可能性があります。パスワードをハッシュするときは、遅いのが良いです。アルゴリズムがパスワードをハッシュするのに時間がかかるほど、悪意のあるユーザーがアプリケーションに対するブルートフォース攻撃で使用される可能性のあるすべての文字列ハッシュ値の「レインボーテーブル」を生成するのに時間がかかります。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。