So integrieren Sie die SHA1-Verschlüsselung in Laravel anstelle von BCrypt
Viele müssen möglicherweise die SHA1-Verschlüsselung in Laravel verwenden, auch wenn dies gewünscht ist Der Algorithmus ist BCrypt. Allerdings unterstützt Laravel SHA1 nicht von Natur aus. In diesem Artikel wird untersucht, wie Sie die SHA1-Verschlüsselung nahtlos in Laravel integrieren können, ohne den Quellcode zu ändern.
Problem:
Ein Entwickler benötigt SHA1-Verschlüsselung für einen Automatic Account Creator (AAC). . Der Server unterstützt SHA1, jedoch nicht BCrypt. Die direkte Implementierung von SHA1 bei der Registrierung allein reicht für die Authentifizierung nicht aus.
Lösung:
Hash-Modul neu schreiben
Laravel hält sich an die Prinzipien von IoC (Inversion of Control) und Dependency Injection. Dies erleichtert die Erstellung eines benutzerdefinierten Hash-Moduls.
SHAHash-Klasse
Erstellen Sie eine Klasse, SHAHasher, die das HasherInterface implementiert. Implementieren Sie die drei wesentlichen Methoden: Make, Check und NeedsRehash.
SHAHashServiceProvider
Registrieren Sie den SHAHashServiceProvider. Der Standard-Hash-Anbieter wird durch Ihren benutzerdefinierten SHAHasher ersetzt.
Änderung von app.php
Ändern Sie das Provider-Array in app/config/app.php. Entfernen Sie den BCrypt-Anbieter und fügen Sie den SHAHashServiceProvider ein.
Zusätzliche Hinweise:
Vorteile dieses Ansatzes:
Beispielverwendung:
Im Registrierungscontroller:
<code class="php">$password = sha1($request->input('password'));</code>
Im Authentifizierungscontroller:
<code class="php">$credentials = array('email' => $email, 'password' => $sha1Password);</code>
Diese Methode ermöglicht Entwicklern die nahtlose Integration der SHA1-Verschlüsselung in ihre Laravel-Anwendungen, selbst wenn die Framework ist standardmäßig BCrypt.
Das obige ist der detaillierte Inhalt vonWie integriere ich die SHA1-Verschlüsselung in Laravel anstelle von BCrypt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!