密碼若以明文的形式儲存在資料庫當中,當應用程式產生漏洞而導致資料庫注入攻擊將可能導致密碼外洩,故以雜湊後的雜湊值儲存是安全的,此外也能避免網站被懷疑洩漏密碼。
從PHP5.5.0開始內建了密碼HASH的API,讓密碼雜湊變得相當容易,新的算法也比MD5、SHA1來得安全。
這個函式共有三個引數,第一個為原始密碼,第二個是雜湊的算法(預設是bcrypt),第三個是算法的工作係數(強度,留空預設為10)
password_hash("hgjfia", PASSWORD_DEFAULT)
PHP提供的API也提供驗證,這樣使開發者很容易設計使用者登入表單。
if(password_verify($password, $user->pw))
//登入
else
//密碼錯誤
這個函式可以檢查目前的雜湊值是否為最新的,第一個引數為密碼雜湊值,第二個為使用的算法,第三個為工作係數
password_needs_rehash($user->pw, PASSWORD_DEFAULT, 12)
如果之前被雜湊的密碼僅使用10的預設工作係數,這個函式將會重新雜湊工作係數為12的雜湊值。
關於作者
粉絲專頁
文章分類