Cara Mengintegrasikan Penyulitan SHA1 dalam Laravel Daripada BCrypt
Ramai mungkin menghadapi keperluan untuk menggunakan penyulitan SHA1 dalam Laravel, walaupun apabila yang dikehendaki algoritma ialah BCrypt. Walau bagaimanapun, Laravel sememangnya tidak menyokong SHA1. Artikel ini meneroka cara untuk menyepadukan penyulitan SHA1 dengan lancar ke dalam Laravel tanpa mengubah kod sumber.
Masalah:
Pemaju memerlukan penyulitan SHA1 untuk Pencipta Akaun Automatik (AAC) . Pelayan menyokong SHA1 tetapi bukan BCrypt. Pelaksanaan langsung SHA1 pada pendaftaran sahaja tidak mencukupi untuk pengesahan.
Penyelesaian:
Menulis Semula Modul Hash
Laravel mematuhi prinsip IoC (Penyongsangan Kawalan) dan Suntikan Ketergantungan. Ini memudahkan penciptaan modul cincang tersuai.
Kelas SHAHash
Buat kelas, SHAHasher, yang melaksanakan Antaramuka Hasher. Laksanakan tiga kaedah penting: buat, semak dan perlukanRehash.
SHAHashServiceProvider
Daftar SHAHashServiceProvider. Ia akan menukar penyedia cincang lalai dengan SHAHasher tersuai anda.
Pengubahsuaian app.php
Ubah suai tatasusunan penyedia dalam app/config/app.php. Alih keluar penyedia BCrypt dan masukkan SHAHashServiceProvider.
Nota Tambahan:
Kelebihan Pendekatan ini:
Contoh Penggunaan:
Dalam pengawal pendaftaran:
<code class="php">$password = sha1($request->input('password'));</code>
Dalam pengawal pengesahan:
<code class="php">$credentials = array('email' => $email, 'password' => $sha1Password);</code>
Kaedah ini memberi kuasa kepada pembangun untuk menyepadukan penyulitan SHA1 dengan lancar ke dalam aplikasi Laravel mereka, walaupun apabila rangka kerja lalai kepada BCrypt.
Atas ialah kandungan terperinci Bagaimana untuk Mengintegrasikan Penyulitan SHA1 dalam Laravel Daripada BCrypt?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!