Lithe Hash: Modul Teguh untuk Hashing Kata Laluan Selamat

Barbara Streisand
Lepaskan: 2024-11-06 08:07:02
asal
230 orang telah melayarinya

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
Salin selepas log masuk
Salin selepas log masuk

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;
Salin selepas log masuk
Salin selepas log masuk

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]);
Salin selepas log masuk

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;
Salin selepas log masuk

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.';
}
Salin selepas log masuk

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!';
}
Salin selepas log masuk

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]);
}
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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;
Salin selepas log masuk
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!