Hash


Hash-Verschlüsselung

    Einführung
  • Konfiguration
  • Grundlegende Verwendung

Einführung

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. LoginControllerRegisterController

{Tipp} Bcrypt ist ideal für das Hashing von Passwörtern, da sein „Verschlüsselungskoeffizient“ beliebig angepasst werden kann, was bedeutet, dass die zum Erzeugen eines Hashs erforderliche Zeit mit der Hardware-Leistung erhöht werden kann.

Konfiguration

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).

{note} Der Argon2i-Treiber erfordert PHP 7.2.0 oder höher, und der Argon2id-Treiber erfordert PHP 7.3.0 oder höher.

Grundlegende Verwendung

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 der

offiziellen PHP-Dokumentation. Mit der

Passwort-Hash-Verifizierung

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
LearnKu.com Website.