Heim >Backend-Entwicklung >PHP-Tutorial >Lithe Hash: Ein robustes Modul für sicheres Passwort-Hashing

Lithe Hash: Ein robustes Modul für sicheres Passwort-Hashing

Barbara Streisand
Barbara StreisandOriginal
2024-11-06 08:07:02307Durchsuche

Lithe Hash: Um Módulo Robusto para Hashing Seguro de Senhas

Lithe Hash ist ein robustes Modul, das für das sichere Hashing von Passwörtern mithilfe des Bcrypt-Algorithmus entwickelt wurde. Dieses Modul vereinfacht den Prozess der Erstellung, Überprüfung und Verwaltung von Passwort-Hashes und stellt sicher, dass die besten Sicherheitspraktiken eingehalten werden.

Index

  1. Installation
  2. Verwenden
    • Klasse importieren
    • Hash erstellen
    • Verifizieren eines Hash
    • Überprüfen, ob ein Hash erneut aufbereitet werden muss
    • Bcrypt verstehen
    • Ausnahmebehandlung
  3. Tests
  4. Lizenz

Installation

Um das Lithemod/Hash-Paket zu installieren, können Sie Composer verwenden. Führen Sie den folgenden Befehl in Ihrem Terminal aus:

composer require lithemod/hash

Dadurch wird das Paket zu den Abhängigkeiten Ihres Projekts hinzugefügt, sodass Sie die Hash-Klasse in Ihrer Anwendung verwenden können.

Verwenden

Importieren der Klasse

Bevor Sie die Hash-Klasse verwenden, müssen Sie sie in Ihre PHP-Datei importieren:

use Lithe\Support\Security\Hash;

Einen Hash erstellen

Um einen Hash aus einem Passwort zu erstellen, verwenden Sie die Methode make. Die Methode akzeptiert ein Passwort und eine optionale Reihe von Optionen:

$hash = Hash::make('sua_senha', ['cost' => 10]);

Parameter:

  • string $value: Das Passwort, das gehasht werden soll.
  • $options-Array: Optionale Parameter (z. B. Kosten) zur Optimierung des Hashing-Algorithmus.

Rückgabe: Eine Hash-Zeichenfolge, die in einer Datenbank gespeichert werden kann.

Beispiel:

$password = 'minha_senha_segura';
$hash = Hash::make($password, ['cost' => 12]);
echo "Senha Hashed: " . $hash;

Einen Hash verifizieren

Um zu überprüfen, ob ein Passwort mit dem Hash übereinstimmt, verwenden Sie die Methode check:

$isValid = Hash::check('sua_senha', $hash);
if ($isValid) {
    echo 'Senha é válida!';
} else {
    echo 'Senha inválida.';
}

Parameter:

  • string $value: Das zu überprüfende Passwort.
  • string $hash: Das gehashte Passwort zum Vergleich.

Rückgabe: true, wenn das Passwort mit dem Hash übereinstimmt; andernfalls falsch.

Beispiel:

if (Hash::check('minha_senha_segura', $hash)) {
    echo 'Senha está correta!';
} else {
    echo 'Senha está incorreta!';
}

Überprüfen, ob ein Hash erneut aufbereitet werden muss

Mit der Methode „needsRehash:
“ können Sie feststellen, ob ein Hash erneut aufbereitet werden muss (z. B. wenn Sie den Kostenfaktor ändern).

$needsRehash = Hash::needsRehash($hash, ['cost' => 14]);
if ($needsRehash) {
    // Rehash com um novo custo
    $hash = Hash::make('sua_senha', ['cost' => 14]);
}

Parameter:

  • string $hash: Das auszuwertende Hash-Passwort.
  • Array $options: Optionale Parameter zur Angabe der Kosten.

Rückgabe: true, wenn der Hash erneut aufbereitet werden muss; andernfalls falsch.

Beispiel:

composer require lithemod/hash

Bcrypt verstehen

Bcrypt ist eine weit verbreitete Passwort-Hashing-Funktion, die langsam und rechenintensiv ist und dadurch resistent gegen Brute-Force-Angriffe ist. Durch die Nutzung eines konfigurierbaren Kostenfaktors können Sie mit Bcrypt die Hashing-Schwierigkeit erhöhen, wenn die Hardware schneller wird.

  • Kostenfaktor: Der Kostenfaktor bestimmt die rechnerische Komplexität des Hashings eines Passworts. Es stellt die Anzahl der Iterationen des Hashing-Algorithmus dar. Höhere Kosten bedeuten mehr Sicherheit, erhöhen aber auch die Bearbeitungszeit. Der empfohlene Bereich liegt für die meisten Anwendungen zwischen 10 und 12.

Ausnahmebehandlung

Die make-Methode löst eine InvalidArgumentException aus, wenn die Kosten außerhalb des gültigen Bereichs (4 bis 31) liegen. Sie müssen dies in Ihrem Code behandeln, um Robustheit sicherzustellen:

use Lithe\Support\Security\Hash;

Das obige ist der detaillierte Inhalt vonLithe Hash: Ein robustes Modul für sicheres Passwort-Hashing. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn