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

Barbara Streisand
Barbara Streisandoriginal
2024-11-06 08:07:02233parcourir

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

Lithe Hash est un module robuste conçu pour le hachage sécurisé des 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é.

Indice

  1. Installation
  2. Utiliser
    • 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.

Utiliser

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('sua_senha', ['cost' => 10]);

Paramètres :

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

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

Exemple :

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

Vérifier un hachage

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

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

Paramètres :

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

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

Exemple :

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

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 com um novo custo
    $hash = Hash::make('sua_senha', ['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 :

composer require lithemod/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é de 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 cela 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 :

use Lithe\Support\Security\Hash;

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