Maison  >  Article  >  développement back-end  >  Comment intégrer le cryptage SHA1 dans Laravel au lieu de BCrypt ?

Comment intégrer le cryptage SHA1 dans Laravel au lieu de BCrypt ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-21 11:59:31487parcourir

How to Integrate SHA1 Encryption in Laravel Instead of BCrypt?

Comment intégrer le cryptage SHA1 dans Laravel au lieu de BCrypt

Beaucoup peuvent rencontrer le besoin d'utiliser le cryptage SHA1 dans Laravel, même lorsque le L'algorithme est BCrypt. Cependant, Laravel ne prend pas automatiquement en charge SHA1. Cet article explique comment intégrer de manière transparente le cryptage SHA1 dans Laravel sans altérer le code source.

Problème :

Un développeur nécessite le cryptage SHA1 pour un créateur de compte automatique (AAC). . Le serveur prend en charge SHA1 mais pas BCrypt. La mise en œuvre directe de SHA1 lors de l'enregistrement seul n'est pas suffisante pour l'authentification.

Solution :

Réécriture du module de hachage

Laravel adhère aux principes de l’IoC (Inversion of Control) et de l’injection de dépendances. Cela facilite la création d'un module de hachage personnalisé.

Classe SHAHash

Créez une classe, SHAHasher, qui implémente HasherInterface. Implémentez les trois méthodes essentielles : make, check et needRehash.

SHAHashServiceProvider

Enregistrez le SHAHashServiceProvider. Il échangera le fournisseur de hachage par défaut avec votre SHAHasher personnalisé.

Modification de app.php

Modifiez le tableau des fournisseurs dans app/config/app.php. Supprimez le fournisseur BCrypt et insérez le SHAHashServiceProvider.

Remarques supplémentaires :

  • Si vous utilisez Laravel 5, implémentez Illuminate/Contracts/Hashing/Hasher au lieu d'IlluminateHashingHasherInterface.
  • Assurez-vous que le fichier autoload.classmap dans composer.json inclut le dossier app/libraries.

Avantages de cette approche :

  • Permet l'utilisation du cryptage SHA1 sans modifier le framework principal de Laravel.
  • Maintient le principe de conception IoC pour l'extensibilité des modules.

Exemple d'utilisation :

Dans le contrôleur d'enregistrement :

<code class="php">$password = sha1($request->input('password'));</code>

Dans le contrôleur d'authentification :

<code class="php">$credentials = array('email' => $email, 'password' => $sha1Password);</code>

Cette méthode permet aux développeurs d'intégrer de manière transparente le cryptage SHA1 dans leurs applications Laravel, même lorsque le le framework est par défaut BCrypt.

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