Merapatkan Jurang: Melaksanakan Penyulitan SHA1 dalam Laravel, Walaupun Had BCrypt
Membangunkan Pencipta Akaun Automatik (AAC) untuk permainan memerlukan pengendalian data sensitif dengan selamat, dan penyulitan memainkan peranan penting dalam proses ini. Walau bagaimanapun, apabila berhadapan dengan kekangan pelayan yang hanya menyokong penyulitan SHA1, memanfaatkan BCrypt yang lebih selamat menjadi mencabar.
Untuk menangani dilema ini, Laravel, dengan pematuhannya kepada IoC dan Suntikan Ketergantungan, menawarkan penyelesaian. Dengan melanjutkan modul Hash, anda boleh mengubah suai mekanisme penyulitan lalai untuk menyokong SHA1.
Mencipta Kelas SHAHasher
Dalam folder apl/pustaka, cipta kelas SHAHasher yang melaksanakan IlluminateHashingHasherInterface (atau Illuminate/Contracts/Hashing/Hasher untuk Laravel 5). Kelas ini mentakrifkan tiga kaedah penting:
Contoh Kod Kelas SHAHasher:
<code class="php">namespace App\Libraries; use Illuminate\Hashing\HasherInterface; class SHAHasher implements HasherInterface { public function make($value, array $options = []) { return hash('sha1', $value); } public function check($value, $hashedValue, array $options = []) { return $this->make($value) === $hashedValue; } public function needsRehash($hashedValue, array $options = []) { return false; } }</code>
Mendaftarkan Pembekal Perkhidmatan
Untuk mendayakan kelas SHAHasher sebagai komponen cincang lalai dalam Laravel, cipta kelas SHAHashServiceProvider yang memanjangkan IlluminateSupportServiceProvider. Kelas ini mentakrifkan proses pendaftaran untuk perkhidmatan 'hash'.
Contoh SHAHashServiceProvider Kod Kelas:
<code class="php">namespace App\Libraries; use Illuminate\Support\ServiceProvider; class SHAHashServiceProvider extends ServiceProvider { public function register() { $this->app['hash'] = $this->app->share(function () { return new SHAHasher(); }); } public function provides() { return ['hash']; } }</code>
Melaraskan Konfigurasi app.php
Akhir sekali, dalam app/config/app.php, ubah suai tatasusunan 'penyedia' untuk menggantikan 'IlluminateHashingHashServiceProvider' lalai dengan 'SHAHashServiceProvider'. Ini memastikan pelaksanaan penyulitan SHA1 tersuai anda digunakan di seluruh aplikasi Laravel.
Dengan pengubahsuaian ini, Laravel kini akan memanfaatkan penyulitan SHA1 dengan lancar, membolehkan anda menyepadukannya ke dalam AAC anda sambil mematuhi kekangan penyulitan alat kawalan jauh pelayan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penyulitan SHA1 dalam Laravel untuk Pembuatan Akaun Automatik dengan Kekangan Pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!