如何在Laravel 整合SHA1 加密而不是BCrypt
許多人可能會遇到需要在Laravel 中使用SHA1 加密的情況,即使是在想要的情況下演算法是BCrypt。然而,Laravel 本身並不支援 SHA1。本文探討如何在不更改原始程式碼的情況下將 SHA1 加密無縫整合到 Laravel 中。
問題:
開發人員需要 SHA1 加密來實現自動帳戶建立器 (AAC) 。伺服器支援 SHA1,但不支援 BCrypt。僅在註冊時直接實現 SHA1 不足以進行身份驗證。
解決方案:
重寫雜湊模組
Laravel遵循IoC(控制反轉)和依賴注入的原則。這有助於建立自訂哈希模組。
SHAHash 類別
建立一個實作 HasherInterface 的類別 SHAHasher。實作三個基本方法:make、check 和needsRehash。
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>
此方法使開發人員能夠將SHA1 加密無縫整合到他們的Laravel 應用程式中,即使在框架預設為BCrypt。
以上是如何在 Laravel 中整合 SHA1 加密而不是 BCrypt?的詳細內容。更多資訊請關注PHP中文網其他相關文章!