登入
首頁 所有文章 PHP PHP - Password_Hash密碼雜湊API
長也   2018-06-09 01:35:44(1年前)    581點閱   0喜歡  0收藏
PHP - Password_Hash密碼雜湊API  

為何需要雜湊密碼

密碼若以明文的形式儲存在資料庫當中,當應用程式產生漏洞而導致資料庫注入攻擊將可能導致密碼外洩,故以雜湊後的雜湊值儲存是安全的,此外也能避免網站被懷疑洩漏密碼。

從PHP5.5.0開始內建了密碼HASH的API,讓密碼雜湊變得相當容易,新的算法也比MD5、SHA1來得安全。

產生雜湊值:password_hash

這個函式共有三個引數,第一個為原始密碼,第二個是雜湊的算法(預設是bcrypt),第三個是算法的工作係數(強度,留空預設為10)

password_hash("hgjfia", PASSWORD_DEFAULT)

驗證雜湊值:password_verity

PHP提供的API也提供驗證,這樣使開發者很容易設計使用者登入表單。

if(password_verify($password, $user->pw))
  //登入
else
  //密碼錯誤

重新雜湊:password_needs_rehash

這個函式可以檢查目前的雜湊值是否為最新的,第一個引數為密碼雜湊值,第二個為使用的算法,第三個為工作係數

password_needs_rehash($user->pw, PASSWORD_DEFAULT, 12)

如果之前被雜湊的密碼僅使用10的預設工作係數,這個函式將會重新雜湊工作係數為12的雜湊值。

本文作者:長也

糾結與想不開的資管系學生,之前常碰PHP,現在常碰到的是Python,閒暇之餘就記錄一些筆記。

             

如要發表回覆,請先 登入

  2則回覆
  回覆於2018-06-09 02:11:23
回覆  #1

係數越大會越花時間嗎

長也   回覆於2018-06-09 11:34:17