我有以下的密碼:password_hash和password_verify返回false
123
現在我湊這一點,它返回以下重點:
$2y$10$rSq.2M7Ikc.QPhVtYlp1Nu8HI.Eq5fUgVWn25J
現在我嘗試使用來驗證相同的密鑰:
return password_verify(123, $2y$10$rSq.2M7Ikc.QPhVtYlp1Nu8HI.Eq5fUgVWn25J);
但是,這將返回false。
有誰能告訴我爲什麼?
更新
這是我的全碼:
<?php
/**
* Created by JetBrains PhpStorm.
* User: Marc
* Date: 14-12-13
* Time: 13:56
* To change this template use File | Settings | File Templates.
*/
class Security {
/**
* @param $string
* @return mixed
*/
public function encrypt($string) {
return password_hash($string, PASSWORD_DEFAULT);
}
/**
* @param $string
* @param $hash
* @return mixed
*/
public function validate($string, $hash) {
return password_verify($string, $hash);
}
}
$hash = $this->db->template("SELECT password FROM User WHERE username = '".$username."'", READ_FROM_QUERY)['password'];
$validate = $this->getSecurity()->validate($password, $hash);
我嘗試插入下面的字符串:
Helloworld
然而$validate = false
;
密碼必須返回到$2y$10$VbicsFaGN9d3ggQTNYIto.Bp6x/rbjpsBe2kneEhJ9oP2KdPsZ7hy
如果我試圖和老調重彈,它返回相同的值洙,他們必須彼此相等,那麼爲什麼它返回假的?!??!
返回false以及
$validate = $this->getSecurity()->validate((string)$password, (string)$hash);
嘗試將密碼作爲字符串傳遞給password_verify() –
您是如何生成該哈希的? 'password_verify()'只能運行在'password_hash()'哈希密碼?!? – loveNoHate
好吧,讓我試着重新說明我的問題 –