ホームページ >バックエンド開発 >PHPチュートリアル >BCryptの代わりにLaravelにSHA1暗号化を統合するにはどうすればよいですか?
BCrypt の代わりに SHA1 暗号化を Laravel に統合する方法
多くの人は、必要な場合でも、Laravel で SHA1 暗号化を利用する必要性に遭遇するかもしれません。アルゴリズムはBCryptです。ただし、Laravel は本質的に SHA1 をサポートしません。この記事では、ソースコードを変更せずに、SHA1 暗号化を Laravel にシームレスに統合する方法について説明します。
問題:
開発者は、Automatic Account Creator (AAC) に SHA1 暗号化を必要としています。 。サーバーは SHA1 をサポートしますが、BCrypt はサポートしません。登録時に SHA1 を直接実装するだけでは、認証には十分ではありません。
解決策:
ハッシュ モジュールの書き換え
Laravel IoC (制御の反転) と依存関係の注入の原則に準拠しています。これにより、カスタム ハッシュ モジュールの作成が容易になります。
SHAHash クラス
HasherInterface を実装するクラス SHAHasher を作成します。 make、check、needsRehash の 3 つの必須メソッドを実装します。
SHAHashServiceProvider
SHAHashServiceProvider を登録します。デフォルトのハッシュプロバイダーをカスタム SHAHasher と交換します。
app.php の変更
app/config/app.php のプロバイダー配列を変更します。 BCrypt プロバイダーを削除し、SHAHashServiceProvider を挿入します。
追加メモ:
このアプローチの利点:
使用例:
登録コントローラー内:
<code class="php">$password = sha1($request->input('password'));</code>
認証コントローラー内:
<code class="php">$credentials = array('email' => $email, 'password' => $sha1Password);</code>
この方法により、開発者は、たとえフレームワークのデフォルトは BCrypt です。
以上がBCryptの代わりにLaravelにSHA1暗号化を統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。