国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Bagaimana untuk mencincang dan mengesahkan kata laluan menggunakan fungsi password_hash PHP
P粉011684326
P粉011684326 2023-08-17 20:41:00
0
2
829
<p>Kebelakangan ini saya telah cuba melaksanakan keselamatan saya sendiri pada skrip log masuk yang saya temui di internet. Semasa cuba mempelajari skrip tentang cara menjana garam untuk setiap pengguna, saya terjumpa <code>password_hash</code>. </p> <p>Daripada apa yang saya faham (berdasarkan pembacaan di halaman ini), apabila anda menggunakan <kod>kata laluan_hash</kod>, garam sudah dijana dalam baris. Adakah ini benar? </p> <p>Saya ada soalan lain, adakah bijak menggunakan dua garam? Satu disimpan terus dalam fail dan satu lagi disimpan dalam pangkalan data? Dengan cara ini, jika seseorang memecahkan garam dalam pangkalan data, anda masih mempunyai garam dalam fail. Saya pernah terbaca di sini bahawa tidak ada idea yang bijak untuk menyimpan garam, tetapi ia selalu membingungkan saya apabila orang berkata begini. </p>
P粉011684326
P粉011684326

membalas semua(2)
P粉896751037

Ya, anda memahaminya dengan betul, fungsi password_hash() akan menjana garam secara automatik dan memasukkannya ke dalam nilai cincang yang dihasilkan. Adalah betul untuk menyimpan garam dalam pangkalan data, ia akan berfungsi walaupun ia diketahui.

// 為在數(shù)據(jù)庫中存儲的新密碼生成哈希值。
// 該函數(shù)會自動生成一個密碼學(xué)安全的鹽。
$hashToStoreInDb = password_hash($_POST['password'], PASSWORD_DEFAULT);

// 檢查輸入的登錄密碼的哈希值是否與存儲的哈希值匹配。
// 鹽和成本因素將從$existingHashFromDb中提取。
$isPasswordCorrect = password_verify($_POST['password'], $existingHashFromDb);

Garam kedua yang anda nyatakan (garam yang disimpan dalam fail), sebenarnya adalah kunci cili atau pelayan. Jika anda menambahnya sebelum hash (seperti garam), maka anda telah menambah lada cili. Tetapi ada cara yang lebih baik, anda boleh mengira nilai cincang dahulu dan kemudian menyulitkan nilai cincang menggunakan kunci sisi pelayan (penyulitan dua hala). Dengan cara ini anda boleh menukar kunci jika perlu.

Berbeza dengan garam, kunci ini harus dirahsiakan. Orang ramai sering keliru dan cuba menyembunyikan garam, tetapi lebih baik biarkan garam melakukan tugasnya dan gunakan kunci untuk menambah rahsia.

P粉422227023

Menggunakan password_hash ialah cara yang disyorkan untuk menyimpan kata laluan. Jangan simpannya secara berasingan dalam pangkalan data dan fail.

Katakan kita mempunyai input berikut:

$password = $_POST['password'];

Cincang kata laluan pertama dengan:

$hashed_password = password_hash($password, PASSWORD_DEFAULT);

Kemudian lihat output:

var_dump($hashed_password);

Seperti yang anda lihat, ia telah dicincang. (Saya andaikan anda telah menyelesaikan langkah-langkah ini).

Sekarang simpan kata laluan cincang ini dalam pangkalan data anda, Pastikan lajur kata laluan anda cukup besar untuk menampung nilai cincang (sekurang-kurangnya 60 aksara atau lebih lama) . Apabila pengguna meminta log masuk, anda boleh menyemak sama ada cincang dalam pangkalan data sepadan dengan input kata laluan melalui:

// 查詢數(shù)據(jù)庫獲取用戶名和密碼
// ...

if(password_verify($password, $hashed_password)) {
    // 如果密碼輸入與數(shù)據(jù)庫中的哈希密碼匹配
    // 做一些操作,你懂的... 登錄他們。
} 

// 否則,將他們重定向回登錄頁面。

Dokumen rujukan rasmi

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan