這篇文章主要介紹PHP中的密碼安全性Password Hashing詳解,有興趣的朋友參考下,希望對大家有幫助。
如果你還在用md5加密,建議看看下方密碼加密和驗證方式。
先看一個簡單的Password Hashing範例:
#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php
$passwordHash = password_hash('secret-password', PASSWORD_DEFAULT);
echo $passwordHash ;
if (password_verify('bad-password', $passwordHash )) {
echo 'Correct Password';
} else {
echo 'Wrong password';
}
|
登入後複製
下方程式碼提供了一個完整的模擬的User 類,在這個類中,透過使用Password Hashing,既能安全地處理使用者的密碼,又能支援未來不斷變化的安全需求。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <?php
class User
{
const HASH = PASSWORD_DEFAULT;
const COST = 14;
public $data ;
public function __construct() {
$this ->data = new stdClass();
$this ->data->passwordHash = 'dbd014125a4bad51db85f27279f1040a';
}
public function save() {
}
public function setPassword( $password ) {
$this ->data->passwordHash = password_hash( $password , self::HASH, ['cost' => self::COST]);
}
public function login( $password ) {
echo "Login: " , $this ->data->passwordHash, "\n" ;
if (password_verify( $password , $this ->data->passwordHash)) {
if (password_needs_rehash( $this ->data->passwordHash, self::HASH, ['cost' => self::COST])) {
$this ->setPassword( $password );
$this ->save();
}
return true;
}
return false;
}
}
|
登入後複製
以上就是本文的全部內容,希望對大家的學習有幫助。
相關推薦:
Auth使用salt和password進行使用者認證實例
詳解Laravel透過修改Auth使用salt和password認證
透過修改Laravel Auth使用salt和password進行認證使用者詳解
#
以上是PHP中的密碼安全性Password Hashing詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!