Rumah >pembangunan bahagian belakang >tutorial php >Lithe Hash: Modul Teguh untuk Hashing Kata Laluan Selamat

Lithe Hash: Modul Teguh untuk Hashing Kata Laluan Selamat

Barbara Streisand
Barbara Streisandasal
2024-11-06 08:07:02316semak imbas

Lithe Hash: Um Módulo Robusto para Hashing Seguro de Senhas

Lithe Hash ialah modul teguh yang direka untuk pencincangan selamat kata laluan menggunakan algoritma Bcrypt. Modul ini memudahkan proses mencipta, mengesahkan dan mengurus cincang kata laluan, memastikan amalan keselamatan terbaik dipatuhi.

Indeks

  1. Pemasangan
  2. guna
    • Mengimport Kelas
    • Mencipta Hash
    • Mengesahkan Cincang
    • Menyemak sama ada Hash Perlu Dicap Semula
    • Memahami Bcrypt
    • Pengendalian Pengecualian
  3. Ujian
  4. Lesen

Pemasangan

Untuk memasang pakej lithemod/hash, anda boleh menggunakan Composer. Jalankan arahan berikut dalam terminal anda:

composer require lithemod/hash

Ini akan menambah pakej pada kebergantungan projek anda, membolehkan anda menggunakan kelas Hash dalam aplikasi anda.

guna

Mengimport Kelas

Sebelum menggunakan kelas Hash, anda mesti mengimportnya ke dalam fail PHP anda:

use Lithe\Support\Security\Hash;

Mencipta Hash

Untuk mencipta cincang daripada kata laluan, gunakan kaedah buat. Kaedah ini menerima kata laluan dan pelbagai pilihan pilihan:

$hash = Hash::make('sua_senha', ['cost' => 10]);

Parameter:

  • rentetan $value: Kata laluan untuk dicincang.
  • Tatasusunan $options: Parameter pilihan (cth. kos) untuk menala algoritma pencincangan.

Pulangan: Rentetan cincang yang boleh disimpan dalam pangkalan data.

Contoh:

$password = 'minha_senha_segura';
$hash = Hash::make($password, ['cost' => 12]);
echo "Senha Hashed: " . $hash;

Mengesahkan Hash

Untuk menyemak sama ada kata laluan sepadan dengan cincang, gunakan kaedah semak:

$isValid = Hash::check('sua_senha', $hash);
if ($isValid) {
    echo 'Senha é válida!';
} else {
    echo 'Senha inválida.';
}

Parameter:

  • rentetan $value: Kata laluan untuk disemak.
  • rentetan $hash: Kata laluan yang dicincang untuk perbandingan.

Pulangan: benar jika kata laluan sepadan dengan cincang; palsu sebaliknya.

Contoh:

if (Hash::check('minha_senha_segura', $hash)) {
    echo 'Senha está correta!';
} else {
    echo 'Senha está incorreta!';
}

Menyemak sama ada Hash Perlu Pencincangan Semula

Anda boleh menentukan sama ada cincang perlu dicincang semula (contohnya, jika anda menukar faktor kos) menggunakan kaedah needsRehash:

$needsRehash = Hash::needsRehash($hash, ['cost' => 14]);
if ($needsRehash) {
    // Rehash com um novo custo
    $hash = Hash::make('sua_senha', ['cost' => 14]);
}

Parameter:

  • rentetan $hash: Kata laluan yang dicincang untuk dinilai.
  • array $options: Parameter pilihan untuk menentukan kos.

Pulangan: benar jika cincang perlu dicincang semula; palsu sebaliknya.

Contoh:

composer require lithemod/hash

Memahami Bcrypt

Bcrypt ialah fungsi pencincangan kata laluan yang digunakan secara meluas yang direka untuk menjadi perlahan dan intensif pengiraan, menjadikannya tahan terhadap serangan kekerasan. Dengan menggunakan faktor kos yang boleh dikonfigurasikan, Bcrypt membolehkan anda meningkatkan kesukaran pencincangan apabila perkakasan menjadi lebih pantas.

  • Faktor Kos: Faktor kos menentukan kerumitan pengiraan pencincangan kata laluan. Ia mewakili bilangan lelaran algoritma pencincangan. Kos yang lebih tinggi bermakna lebih keselamatan, tetapi ia juga meningkatkan masa pemprosesan. Julat yang disyorkan ialah antara 10 dan 12 untuk kebanyakan aplikasi.

Pengendalian Pengecualian

Kaedah buat membuang InvalidArgumentException jika kos ditetapkan di luar julat yang sah (4 hingga 31). Anda mesti mengendalikan perkara ini dalam kod anda untuk memastikan keteguhan:

use Lithe\Support\Security\Hash;

Atas ialah kandungan terperinci Lithe Hash: Modul Teguh untuk Hashing Kata Laluan Selamat. 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