iT邦幫忙

1

PHP-建立雜湊碼與驗證雜湊碼筆記記錄

1.password_hash:建立密碼雜湊值
2.password_verify:用帳戶密碼的雜湊值驗證密碼
3.cost參數(默認為10),當值調整越大,所需耗費的計算時間就會越多,可以自行測試

4.你想要越安全cost數字就越大,這樣駭客破解就要以5、10年計算相對花費的成本就越高,但為了考慮使用者體驗和server的資源消耗上,所以數字必須設定適當的數字。

5.在使用時,需要搭配第二個參數,推薦直接使用 PASSWORD_DEFAULT
每次處理時,都會在背後產生隨機的SALT,
當然,也可以手動指定要使用哪一個SALT,但最好不要,就交給PASSWORD_DEFAULT來隨機處理,會更加安全

<?php
$password = 'PHPJQUERYGIT';//此為密碼

$passwordHash = password_hash(
  $password,
  PASSWORD_DEFAULT,
  ['cost' => 12]
);
echo $passwordHash ,'<br>';//密碼轉換出來的雜湊值

if (password_verify($password, $passwordHash)) {//打入的密碼與雜湊值驗證
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}
?>

資料庫的用法
1.

$stmt->bindValue(':password', password_hash($_POST['password'], PASSWORD_BCRYPT));
$passwordHash = password_hash(
  $_POST['password'],
  PASSWORD_DEFAULT,
  ['cost' => 12]
);
$stmt->bindValue(':password', $passwordHash, PDO::PARAM_STR);//$passwordHash是字串,所以第三個參數為設定字串

尚未有邦友留言

立即登入留言