Hash
Laravel
Die Fassade bietet sichere Bcrypt- und Argon2-Hash-Verschlüsselungsmethoden zum Speichern von Benutzerkennwörtern. Wenn Sie die integrierten Klassen und Hash
in Ihrer Laravel-Anwendung verwenden, verwenden diese standardmäßig Bcrypt für die Registrierung und Authentifizierung. LoginController
RegisterController
Sie können den Standard-Hash-Treiber in der
-Konfigurationsdatei konfigurieren. Derzeit werden drei Treiber unterstützt:Bcryptconfig/hashing.php
und Argon2 (Argon2i- und Argon2id-Varianten).
Sie können die
Fassade von nennen Methode zum Verschlüsseln Ihres Passworts: Hash
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use App\Http\Controllers\Controller;class UpdatePasswordController extends Controller{ /** * 更新用户密码。 * * @param Request $request * @return Response */ public function update(Request $request) { // 验证新密码的长度 $request->user()->fill([ 'password' => Hash::make($request->newPassword) ])->save(); } }
make
Passen Sie den Bcrypt-Verschlüsselungskoeffizienten an
Wenn Sie den Bcrypt-Algorithmus verwenden, können Sie die Option make
in der Methode rounds
verwenden, um den Verschlüsselungskoeffizienten des Algorithmus zu konfigurieren. Für die meisten Anwendungen reichen jedoch die Standardwerte aus:
$hashed = Hash::make('password', [ 'rounds' => 12 ]);
Passen Sie die Argon2-Verschlüsselungskoeffizienten an
Wenn Sie den Argon2-Algorithmus verwenden, können Sie dies in <🎜 tun > Verwenden Sie die Optionen make
, memory
und time
in der Methode, um den Verschlüsselungskoeffizienten des Algorithmus zu konfigurieren. Dann reichen für die meisten Anwendungen die Standardwerte aus: threads
$hashed = Hash::make('password', [ 'memory' => 1024, 'time' => 2, 'threads' => 2, ]);
{tip} Weitere Informationen zu diesen Optionen finden Sie in derPasswort-Hash-Verifizierungoffiziellen PHP-Dokumentation. Mit der
kann für Sie überprüft werden, ob eine bestimmte unverschlüsselte Zeichenfolge mit dem angegebenen Hash-Wert übereinstimmt. Wenn Sie jedoch den integrierten check
-Controller von Laravel verwenden, müssen Sie diese Methode möglicherweise nicht direkt verwenden, da der Controller automatisch diese Methode aufruft: LoginController
if (Hash::check('plain-text', $hashedPassword)) { // 密码匹配 }, um zu überprüfen, ob die Passwort ist erforderlich Rehash
Diese Methode kann für Sie überprüfen, ob Ihr Passwort mit dem neuen Verschlüsselungskoeffizienten neu verschlüsselt wurde, wenn der Verschlüsselungskoeffizient des Hashs geändert wird: needsRehash
if (Hash::needsRehash($hashed)) { $hashed = Hash::make('plain-text'); }Dieser Artikel erschien zuerst auf