Rumah > pembangunan bahagian belakang > tutorial php > Pustaka hash dalam PHP8.0: Bcrypt

Pustaka hash dalam PHP8.0: Bcrypt

WBOY
Lepaskan: 2023-05-14 12:22:01
asal
1776 orang telah melayarinya

Dalam PHP8.0, perpustakaan fungsi cincang memperkenalkan algoritma cincang baharu: Bcrypt. Bcrypt ialah fungsi cincang kata laluan yang mengehadkan panjang maksimum kata laluan input dan meningkatkan keselamatan peretasan kata laluan dengan meningkatkan kerumitan algoritma.

Sebelum PHP8.0, fungsi cincang kata laluan terutamanya menggunakan algoritma seperti MD5 atau SHA-1. Kelemahan algoritma ini ialah nilai hash yang mereka hasilkan sangat pendek, hanya 32 atau 40 bait. Dalam kes ini, penyerang boleh memecahkan kata laluan melalui kaedah kekerasan. Sebaliknya, Bcrypt ialah algoritma pencincangan yang lebih selamat kerana panjang nilai cincangnya yang lebih panjang dan kesukaran untuk diterbalikkan.

Ciri algoritma Bcrypt ialah ia mengehadkan panjang kata laluan input kepada 72 aksara. Sekatan ini bertujuan untuk menghalang sesetengah pengguna berniat jahat daripada mengeksploitasi kelemahan dalam algoritma cincang untuk melakukan serangan. Sebaliknya, Bcrypt juga boleh menggunakan beberapa pusingan pengiraan berulang nilai cincang untuk meningkatkan kerumitan dan memakan masa untuk memecahkan kata laluan.

Selain sekatan panjang kata laluan dan berbilang pusingan pengiraan berulang, algoritma Bcrypt juga memperkenalkan konsep "garam". Garam ialah rentetan aksara rawak yang ditambahkan pada kata laluan asal untuk menjana nilai cincang akhir. Pendekatan ini boleh menghalang penyerang daripada menggunakan alatan seperti jadual pelangi untuk memecahkan hasil cincang terbalik. Pada masa yang sama, garam juga boleh membuat hasil hash berbeza setiap kali, yang meningkatkan kesukaran penyerang untuk menggunakan kaedah yang lebih kompleks untuk memecahkan kata laluan.

Fungsi berkaitan PHP8.0 yang menggunakan algoritma Bcrypt untuk pencincangan kata laluan terutamanya termasuk yang berikut:

  1. password_hash
    Fungsi ini digunakan untuk menjana nilai cincang kata laluan . Tandatangan fungsi ialah:

string password_hash(string $password, int $algo, array $options = array())

di mana $password ialah kata laluan asal untuk dicincang, $algo ialah jenis algoritma cincang dan $options ialah parameter konfigurasi. Apabila menggunakan Bcrypt untuk pencincangan kata laluan, nilai $algo hendaklah PASSWORD_BCRYPT.

  1. password_verify
    Fungsi ini digunakan untuk mengesahkan sama ada kata laluan konsisten dengan nilai cincangnya. Tandatangan fungsi ialah:

bool password_verify(string $password, string $hash)

di mana $password ialah kata laluan yang akan disahkan dan $hash ialah nilai cincang kata laluan yang dijana. Mengembalikan benar jika kata laluan dan cincang sepadan, palsu sebaliknya.

  1. password_needs_rehash
    Fungsi ini digunakan untuk mengesahkan sama ada nilai cincang perlu dikira semula. Tandatangan fungsi ialah:

bool password_needs_rehash(string $hash, int $algo, array $options = array())

di mana $hash ialah nilai cincang yang akan disahkan, $algo ialah jenis algoritma cincang dan $options ialah parameter konfigurasi. Fungsi ini boleh mengira semula nilai cincang menjadi nilai cincang baharu untuk menyesuaikan diri dengan keperluan keselamatan yang lebih tinggi.

Ringkasnya, algoritma pencincangan Bcrypt yang diperkenalkan dalam PHP8.0 menyediakan aplikasi dengan keselamatan kata laluan yang lebih kukuh. Dalam aplikasi praktikal, menggunakan algoritma Bcrypt untuk pencincangan kata laluan adalah pilihan yang sangat baik.

Atas ialah kandungan terperinci Pustaka hash dalam PHP8.0: Bcrypt. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan