Lidemy / mentor-program-2nd-futianshen

mentor-program-2nd-futianshen created by GitHub Classroom
14 stars 2 forks source link

如何使用 Hash Funcion 將密碼存為暗碼? #18

Open futianshen opened 5 years ago

futianshen commented 5 years ago

Hash Function 的功能是什麽 ?

利用其不可逆的特性,將無窮多的字串輸入到 Hash Function 之後產生有限且長度相等的字串。 一個 Hash Function 好壞取決於 hash 碰撞的程度。

為什麼要使用 Hash Function 將明碼存為暗碼?

就算駭客成功入侵資料庫,取得的密碼的暗碼也難以解碼,因為 hash function 是單向輸出。

如何在 PHP 使用 password_hash password_verify 轉換以及驗證密碼?

$register_password=password_hash($_POST["password"], PASSWORD_DEFAULT);
password_verify($login_password, $register_password) // 如果驗證成功回傳1

注意事項

如果要將轉換過的暗碼儲存在 MySQL 資料庫,在設計資料庫結構時,密碼的欄位長度必須超過 60 以上。

參考資料

PHP: password_hash PHP: password_verify