Maison  >  Article  >  développement back-end  >  Lithe Hash : un module robuste pour le hachage sécurisé des mots de passe

Lithe Hash : un module robuste pour le hachage sécurisé des mots de passe

Susan Sarandon
Susan Sarandonoriginal
2024-11-05 08:52:02580parcourir

Lithe Hash: A Robust Module for Secure Password Hashing

Lithe Hash est un module robuste conçu pour hacher en toute sécurité les mots de passe à l'aide de l'algorithme Bcrypt. Ce module simplifie le processus de création, de vérification et de gestion des hachages de mots de passe, garantissant ainsi le respect des meilleures pratiques de sécurité.

Table des matières

  1. Installation
  2. Usage
    • Importer la classe
    • Créer un hachage
    • Vérifier un hachage
    • Vérifier si un hachage doit être rehaché
    • Comprendre Bcrypt
    • Gestion des exceptions
  3. Tests
  4. Licence

Installation

Pour installer le package lithemod/hash, vous pouvez utiliser Composer. Exécutez la commande suivante dans votre terminal :

composer require lithemod/hash

Cela ajoutera le package aux dépendances de votre projet, vous permettant d'utiliser la classe Hash dans votre application.

Usage

Importer la classe

Avant d'utiliser la classe Hash, vous devez l'importer dans votre fichier PHP :

use Lithe\Support\Security\Hash;

Créer un hachage

Pour créer un hachage à partir d'un mot de passe, utilisez la méthode make. La méthode accepte un mot de passe et un tableau facultatif d'options :

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

Paramètres :

  • string $value : Le mot de passe à hacher.
  • array $options : paramètres facultatifs (par exemple, coût) pour ajuster l'algorithme de hachage.

Renvoie : Une chaîne hachée qui peut être stockée dans une base de données.

Exemple :

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

Vérifier un hachage

Pour vérifier si un mot de passe donné correspond au hachage, utilisez la méthode de vérification :

$isValid = Hash::check('your_password', $hash);
if ($isValid) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}

Paramètres :

  • string $value : Le mot de passe à vérifier.
  • string $hash : le mot de passe haché à comparer.

Renvoie : true si le mot de passe correspond au hachage ; faux sinon.

Exemple :

if (Hash::check('my_secure_password', $hash)) {
    echo 'Password is correct!';
} else {
    echo 'Password is incorrect!';
}

Vérifier si un hachage doit être remanié

Vous pouvez déterminer si un hachage doit être rehaché (par exemple, si vous modifiez le facteur de coût) en utilisant la méthode needRehash :

$needsRehash = Hash::needsRehash($hash, ['cost' => 14]);
if ($needsRehash) {
    // Rehash with a new cost
    $hash = Hash::make('your_password', ['cost' => 14]);
}

Paramètres :

  • string $hash : Le mot de passe haché à évaluer.
  • array $options : Paramètres facultatifs pour spécifier le coût.

Renvoie : true si le hachage doit être ressassé ; faux sinon.

Exemple :

if (Hash::needsRehash($hash, ['cost' => 15])) {
    $hash = Hash::make('my_secure_password', ['cost' => 15]);
    echo "Rehashed Password: " . $hash;
}

Comprendre Bcrypt

Bcrypt est une fonction de hachage de mot de passe largement utilisée, conçue pour être lente et gourmande en calcul, ce qui la rend résistante aux attaques par force brute. En utilisant un facteur de coût configurable, Bcrypt vous permet d'augmenter la difficulté du hachage à mesure que le matériel devient plus rapide.

  • Facteur de coût : Le facteur de coût détermine la complexité informatique du hachage d'un mot de passe. Il représente le nombre d'itérations de l'algorithme de hachage. Un coût plus élevé signifie plus de sécurité mais augmente également le temps de traitement. La plage recommandée est comprise entre 10 et 12 pour la plupart des applications.

Gestion des exceptions

La méthode make lève une InvalidArgumentException si le coût est défini en dehors de la plage valide (4 à 31). Vous devez gérer cela dans votre code pour garantir la robustesse :

composer require lithemod/hash

Avec Lithe Hash, vous pouvez gérer les mots de passe de manière sécurisée et efficace tout en suivant les meilleures pratiques de sécurité. Si vous avez des questions ou des suggestions, n'hésitez pas à commenter !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn