Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengintegrasikan Penyulitan SHA1 dalam Laravel Daripada BCrypt?

Bagaimana untuk Mengintegrasikan Penyulitan SHA1 dalam Laravel Daripada BCrypt?

Barbara Streisand
Barbara Streisandasal
2024-10-21 11:59:31487semak imbas

How to Integrate SHA1 Encryption in Laravel Instead of BCrypt?

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:

  • Jika menggunakan Laravel 5, laksanakan Illuminate/Contracts/Hashing/Hasher dan bukannya IlluminateInterfaceHashing.Hasher
  • Pastikan autoload.classmap dalam composer.json termasuk folder app/libraries.

Kelebihan Pendekatan ini:

  • Membolehkan penggunaan penyulitan SHA1 tanpa mengubah suai rangka kerja teras Laravel.
  • Mengekalkan prinsip reka bentuk IoC untuk kebolehlanjutan modul.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn